我有一个自定义结构体叫做“News”,我想将其附加到NSUserDefault数组中。 但是出现错误:“类型'News'不符合协议'AnyObject'”。
我不想将“News”结构体更改为类,因为它已被其他代码使用。 是否有任何办法可以将NSUserDefault.standardUserDefaults().arrayForKey(“savedNewsArray”)类型更改为[News]?
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()
以下是'News'结构体。
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
}
}