iOS - 在 CoreData 中保存结构数组



我有一个这样的结构:

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

在我的程序的另一部分,我声明了一个结构数组,并通过从互联网下载的JSON文件输入信息。

var array = [list]()

现在我的问题是在 CoreData 中保存和恢复这个结构数组。我不知道该怎么往前走,你能帮我一把吗?

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

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

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

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

@NSManaged var list: NSData?

3.使用类帮助程序访问该列表属性:

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,它将从字典构建模型

最新更新