相关疑难解决方法(0)

如何使用swift将自定义结构数组保存到NSUserDefault?

我有一个名为'新闻'的自定义结构,我想将其附加到NSUserDefault的数组中.但它显示错误"类型'新闻'不符合协议'AnyObject'".

我不想将'News'结构更改为类,因为它已经被用于其他代码.无论如何我可以将NSUserDefaults.standardUserDefaults().arrayForKey("savedNewsArray")类型更改为[新闻]?

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()
Run Code Online (Sandbox Code Playgroud)

这是'新闻'结构.

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 = …
Run Code Online (Sandbox Code Playgroud)

arrays struct nsuserdefaults swift swift2

5
推荐指数
1
解决办法
5779
查看次数

标签 统计

arrays ×1

nsuserdefaults ×1

struct ×1

swift ×1

swift2 ×1