Как удалить данные из NSUserDefaults? Существует несколько ответов, как это сделать в Objective C, но как насчет Swift? Поэтому я попробовал это:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.removeObjectForKey("myKey")
Не работает. Может быть, что я действительно хочу удалить, не NSUserDefaults? Вот как я сохраняю данные:
class MySavedData: NSObject, NSCoding {
var image: String
init(name: String, image: String) {
self.image = image
}
required init(coder aDecoder: NSCoder) {
image = aDecoder.decodeObjectForKey("image") as! String
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeObject(image, forKey: "image")
}
}
class ViewController: <...> {
var myData = [MySavedData]() //Later myData gets modified and then function save() is called
func save() {
let savedData = NSKeyedArchiver.archivedDataWithRootObject(myData)
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(savedData, forKey: "myKey")
}
}
РЕДАКТИРОВАТЬ: Просто очистить некоторые вещи - сохраняемые данные небольшие (даже не близкие к 100kb)
И, возможно, я сохраняю данные не в NSUserDefaults (я новичок в программировании), так вот как я его получаю (load):
let defaults = NSUserDefaults.standardUserDefaults()
if let savedData = defaults.objectForKey("myData") as? NSData {
myData = NSKeyedUnarchiver.unarchiveObjectWithData(savedData) as! [UserLogin]
}