将数组存储在核心数据swift 2中

时间:2015-12-12 09:53:52

标签: ios swift core-data entities

我希望能够将数组存储在名为items的属性中。但核心数据由于某种原因不存储数组。

如何在核心数据中保存不同大小的数据集?

请发布代码或教程链接。

3 个答案:

答案 0 :(得分:2)

迭代你的临时数组并以下列方式存储它:

for item in items {

   var newItem = NSEntityDescription.insertNewObjectForEntityForName ("Item", 
         inManagedObjectContext: context) as NSManagedObject

   newItem.setValue(item, forKey: "itemname")
}

如果我理解你的问题不对,请纠正我。此致,Alex!

答案 1 :(得分:0)

您可能需要考虑创建另一个实体,并使用Relationship链接两个实体,以获得您的项目数组。

答案 2 :(得分:0)

虽然在Core Data中存储NSArray是一个架构讨论, 有时您可能有理由不将数组中的对象存储到单独的实体中(过度规范化,性能问题,......)

如果要存储基础类型数组,可以将属性类型指定为Transformable。从iOS5开始,Core Data已经为每个Foundation类型内置了NSValueTransformers。

如果你有一个自定义NSObject数组,你可能想编写一个新的NSValueTransformer子类也处理这个自定义对象的持久性 有关NSValueTransformer的更多信息,请访问:NSValueTransformer