0

我的实体中有一个属性应该存储多个 Int。这就是从 API 收到的 JSON 的样子

 {
    "type": “KsCell”,
    “id”: 23,
    “allowedSize”: [1,2],
},

如何在 xcdatamodeld 中声明/存储它?

这是我可以选择的属性列表,没有数组

在此处输入图像描述

4

1 回答 1

0

Core Data 中没有“本机”数组或字典类型。您可以将 NSArray 或 NSDictionary 存储为可转换属性。这将使用 NSCoding 将数组或字典序列化为 NSData 属性(并在访问时适当地反序列化它)。-源代码

因此,可能的解决方案可能是使用 Transformable 类型。

例如,您可以在 NSManagedObject 中将其声明为:

@NSManaged var allowedSizes: [NSNumber]

并从 json 分配您解析的 ints 数组

myObject!.allowedSizes = allowedSizeArray //[1,2]

另一种解决方案是使用 NSKeyedArchiver 将您的数组转换为 NSData。

let allowedSizes = NSKeyedArchiver.archivedDataWithRootObject(allowedSizeArray) // NSData
于 2016-11-02T12:45:25.627 回答