![]() |
1
2
nsmanagedObject和nscoding确实不能很好地配合使用。考虑 this answer to a similar question 背景和可能的解决方案。 |
![]() |
2
4
我要用这个。方法如下。 首先创建一个NSValueTransformer,如下所示: 阵列数据转换器.h
阵列数据转换器.m 导入“arraytodataTransformer.h”
上面是NSManagedObject的接口,现在创建一个使用它的接口,例如: 数组.h
数组.m
在XCDataModel中,数组需要将myArray属性设置为可选(通常总是选中),类型为:可转换,值转换器名称为:arraytodataTransformer 现在你可以使用它了;
要从CoreData中检索数据,请执行以下操作: 使用一对一关系,因此myarray只指向一个数组元素
如果您使用的是一对多,并且事物的名称如上所述,那么您将得到一个nsset。 核心数据应该将数组存储为数据库中的一个blob,并且可以很快地写入一个大的数组,比如说一个具有3500个对象的数组只需要不到一秒钟的时间。性能与使用几乎相同的概念存储和检索uiimage的方式相当。我认为检索速度更快。 另一种方法是将数组的每个值分别写入核心数据。为此,您需要创建适当的NSManageObject,但请注意,您必须为每个数组值保存3500次,对于3500个项,这将需要20到30秒。 因此,上述方法对于一次将大型阵列写入到核心数据中,并一次性检索到它们是非常有用的。 花了几个小时在这个上面,就要放弃了,然后我看到了光明! |