Wie speichere ich mit swift ein Array mit einer benutzerdefinierten Struktur in NSUserDefault?
Ich habe eine benutzerdefinierte Struktur namens "News", die ich an NSUserDefault in das Array anhängen möchte. Es wird jedoch der Fehler "Typ 'News' entspricht nicht dem Protokoll 'AnyObject'" angezeigt.
Ich möchte die 'News'-Struktur nicht in eine Klasse ändern, da sie bereits für anderen Code verwendet wird. Kann ich den Typ NSUserDefaults.standardUserDefaults (). ArrayForKey ("savedNewsArray") in [News] ändern?
var savedNews = NSUserDefaults.standardUserDefaults().arrayForKey("savedNewsArray")
var addSavedNews = savedNews as? [News]
addSavedNews.append(News(id: "00", title: newsTitle, source: source, imageURL: imageURL, url: url))
NSUserDefaults.standardUserDefaults().setObject(addSavedNews, forKey: "savedNewsArray")
NSUserDefaults.standardUserDefaults().synchronize()
Hier ist die 'News'-Struktur.
public struct News {
public var id: String
public var title: String
public var source: String?
public var imageURL: String?
public var date: NSDate?
public var url: String
init(id: String, title: String, source: String, imageURL: String, url: String) {
self.id = id
self.title = title
self.source = source
self.imageURL = imageURL
self.url = url
}
}