将数组创建为实体的属性

时间:2015-12-05 10:41:30

标签: ios objective-c core-data

因为我不知道如何在核心数据中使用关系 我多次尝试都没有成功。

我想创建一个数组作为实体的属性
应该是什么类型的属性?
以及如何在核心数据中保存数组 我怎么得到它?

我很高兴示例代码

3 个答案:

答案 0 :(得分:2)

您真的不想创建数组并将其存储在Core Data中。它不会被搜索,性能也会受到影响。

更好地建立一个测试项目并学习如何使用关系。您将关系对象视为任何其他对象,但它返回一个集而不是单个对象。

我建议阅读Core Data上的一些入门材料和掌握关系,否则你不会在任何接近其全部潜力的地方使用Core Data。

答案 1 :(得分:1)

您可以将NSArray存储为Transformable属性。然后,您可以使用NSCoding来序列化数组。这种方法的优点是它很容易但你无法查询到数组,因为它在数据存储中存储为BLOB。如果数组很大,您可能必须向/从数据存储中保存或加载大量数据,只是为了读取或修改集合的一小部分。所以你应该使用小数组数据。

这是我的简单样本。 CoreDataWithArraySample

答案 2 :(得分:0)

为此,您可以在CoreData中使用可转换的属性类型。简单来说,属性类型可以被认为是指向支持NSCoding的任何objective-c对象的指针。 NSArray确实如此,因此您可以将其中一个分配给该属性,但随后可以使用持久性存储,您存储在NSArray中的所有对象也需要符合NSCoding。