我有一个托管对象,它与更多与自身类型相同的对象具有多对多关系。我使用valueForKey:
访问这些对象并传递关系名称。
如果我退出返回值,我会得到相关对象的列表,如果我注销了类名,我会得到:_NSFaultingMutableSet
。
根据我的理解,核心数据错误是真正的NSManagedObject
的占位符,只有当访问数据时,才会检索真实对象。
问题是如果我尝试迭代集合,或者调用allObjects
并尝试迭代生成的数组,我什么也得不到。 count
属性始终为0.
这是原始的违规代码:
NSArray *UUIDs = [[(NSSet *)[managedObject valueForKey:@"..."] allObjects] rh_map:^id (id entity) {
// This section is never called because allObjects returns an empty array
return [NSUUID UUIDWithData:[entity valueForKey:@"uuid"]]
}];
[self setValue:UUIDs forKeyPath:@"UUIDs"];
我应该做些什么来获取核心数据以正确获取数据并访问真实对象?