Недостаточно информации, но я могу догадаться, где вы допустили ошибку.
Ваш класс Bookmark
не является синглтоном классом, поэтому каждый раз Bookmark()
каждый раз создает новый экземпляр.это означает, что он создаст новый bookmark
объект для каждого экземпляра.
Я предлагаю вам воспользоваться func func setBookmark(imageURL:String, title:String, description:String, summary:String, date:String, link:String)
Метод 1: Получить последние закладки вотделите переменную и добавьте в нее новый объект и запишите в Default User, а также обновите глобальный объект
Метод 2 Или вы можете сделать его одноэлементным и использовать общий экземпляр при каждом выполнении операции.
Метод 3 Другим решением может быть создание глобального объекта Bookmark
в AppDelegate
или класса Singleton, а затем использование этого объекта
Однако
func setBookmark(imageURL:String, title:String, description:String, summary:String, date:String, link:String) {
bookmark.append(["imageURL":imageURL , "title":title , "description":description, "summary":summary , "date":date, "link":link])
UserDefaults.standard.set(bookmark, forKey: "bookmark")
}
Это плохая практика для подражания.Вы непосредственно заменяете Пользовательское значение по умолчанию новым значением, однако вы намерены добавить новый элемент, а не заменить существующие данные в пользовательской ошибке.
Вы должны всегда загружать последнюю версию и обновлять ее. Как показано в методе 1, а также, если вы хотите получить данные в userdefault, ваш глобальный объект var bookmark: [[String:Any]] = []
не используется, потому что у вас уже есть метод getBookrmark
Надеюсь, вам понятно