将数组属性存储在数据库中

时间:2016-11-02 11:54:49

标签: ios swift xcdatamodel

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

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

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

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

enter image description here

1 个答案:

答案 0 :(得分:0)

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

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

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

@NSManaged var allowedSizes: [NSNumber]

并从json

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

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

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