iOS - 在 CoreData 中保存结构数组

标签 ios core-data struct

我有一个这样的结构:

     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 变量列表: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,它将根据字典构建一个模型

关于iOS - 在 CoreData 中保存结构数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43159050/

相关文章:

ios - 如何在xcode中提交时触发自动缩进

ios - 我如何调用一个号码,然后在五秒钟后在拨号盘上键入数字?

iOS 简单应用内用户反馈表

ios - 带有核心数据的 MVVM 应用程序中 ReactiveCocoa 的可能竞争条件

ios - 如何计算饼图顶部的旋转角度?

ios - 如何将类型颜色从 SwiftUI 存储到 CoreData 中?

swift - Xcode : Reset CoreData after removeItemAtPath

c++ - 嵌套结构初始化

c# - 关于 StructLayoutAttribute 中 sizeof(T) 的 CS0233 有什么替代方案吗?

c# - 将字节数组数据映射到 C# 中的结构