iOS - 在CoreData

时间:2017-04-01 16:04:07

标签: ios core-data struct

我有这样的结构:

     struct list
{
        
         var userId: Int = 0
         var id: Int = 0
         var title: String = ""
         var body: String = ""

}

在我的程序的另一部分中,我声明了一个struct数组,我通过从Internet下载的JSON文件输入信息。

var array = [list]()

现在我的问题是在CoreData中保存和恢复这个struct数组。我不知道如何前进,你能帮我一把吗?

1 个答案:

答案 0 :(得分:1)

我认为您最好选择使用二进制数据类型。

1.在结构模型上创建toDictionary()方法:

func toDictionary() -> [String: Any] {
    return ["userId: self.userId, "id": self.id, ...]
}

2.然后在核心数据模型上添加NSData属性,该属性表示结构列表:

@NSManaged var list: NSData?

3.使用类帮助程序访问list属性:

func listDictionary() -> [String: Any]? {
    guard let listData = self.list as? Data else { return nil }
    let dict = NSKeyedUnarchiver.unarchiveObject(with: listData) as? [String: Any]
    return dict
}

4.在列表对象上创建一个fromDictionary() -> list,它将从字典

构建模型