Я сохранил данные, т.е. все уведомления как объект уведомления, используя NSKeyedArchiver:
let notificationobj = NotificationObj(userid: userid, type: type, image:image, body:body, title:title, category:category, badge:badge)
notificationarr.append(notificationobj)
let encodedData = NSKeyedArchiver.archivedData(withRootObject: notificationarr)
UserDefaults.standard.set(encodedData, forKey: "notificationarr")
И неархивированные данные в виде списка массивов:
self.encodedData = UserDefaults.standard.data(forKey: "notificationarr")
if((self.encodedData != nil)){
self.notificationLists = (NSKeyedUnarchiver.unarchiveObject(with: self.encodedData!) as? [NotificationObj])!
print("NOTIFICATIONLISTVIEWDIDLOAD : \(self.notificationLists)")
}else{
tableView.reloadData()
}
Как очистить данные, т. Е. Уведомления об удалении всех / нажатии всех кнопок?
Я попытался описанным ниже способом, но данные снова загружаются при получении другого уведомления
self.notificationLists.removeAll()
//self.notificationarr.removeAll()
self.encodedData?.removeAll()
self.tableView.reloadData()
let defaults = UserDefaults.standard
self.encodedData = NSKeyedArchiver.archivedData(withRootObject: self.notificationLists)
print("encodedata \(self.encodedData)")
defaults.set(self.encodedData, forKey: "notificationarr")
defaults.synchronize()