问题描述
User
- objectId
- access (transformable - array of "User_Access")
CustomObject
- objectId
- name
- etc
User_Access
- customObject
对象保存正确,可转换访问数组正确填充,但是在应用的第二次使用时,“访问”数组是未填充对象的数组:
"<User_Access: 0x6060001746e0> (entity: <null>; id: (null); data: <fault>)"
我正在使用这样的提取请求:
NSFetchRequest *fetch = [NSFetchRequest fetchRequestWithEntityName:@"User"];
[fetch setReturnsObjectsAsFaults:NO];
[fetch setIncludesSubentities:YES];
[fetch setIncludesSubentities:YES];
NSArray *test = [[SPModel objectContext] executeFetchRequest:fetch error:nil];
if (test.count == 0) {
return nil;
}
User *user = (User *)test.firstObject;
获取请求完美地获取了用户对象的属性,但是可转换的“访问”数组未填充。
解决方法
解决了!
与其使用可变形对象存储一组核心数据对象,不如使用一种关系并将目标设置为自定义对象类,并将类型从To One
更改为To Many
。
这将要求您将头文件中的属性更改为NSSet
,而不是NSArray
。