在数据库中存储数组属性

Store an Array attribute in the Data Base

我的实体中有一个属性应该存储多个 Int。 这是从 API 收到的 JSON 看起来像

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

如何在 xcdatamodeld 中 declare/store 这个?

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

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

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

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

@NSManaged var allowedSizes: [NSNumber]

并从 json

分配您解析的整数数组
myObject!.allowedSizes = allowedSizeArray //[1,2]

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

let allowedSizes = NSKeyedArchiver.archivedDataWithRootObject(allowedSizeArray) // NSData