【发布时间】:2014-01-14 04:33:33
【问题描述】:
我研究了大量关于 CoreData 返回错误而不是实际值的问题和文档:
Relationship 'whiskers' fault on managed object (0xb7abab0)
当我试图计算胡须的数量时会发生这种情况,例如:
self.numWhiskersLabel.text = [NSString stringWithFormat:@"%d", cat.whiskers.count];
即使我尝试直接记录胡须集,我仍然会出错:
NSLog(@"whiskers: %@", cat.whiskers);
我了解“在需要访问该对象的实际值之前,核心数据不会返回完整对象。在此之前,您返回的每个对象都将是一个‘故障’。”这很好,但是此时需要访问实际值。我现在需要价值!那么我该如何摆脱这种矛盾呢?怎么能不认为访问Set的count需要value呢?
【问题讨论】:
-
所以你已经在 Cat 上完成了 fetch 请求,对吧?然后 Cat 对象应该在那里并准备好让您访问胡须。胡须的数据类型是什么?
-
胡须是什么数据类型?一组 NSManagedObjects?
-
它在您的标签中显示什么? -- 你获取数据的调用应该可以正常工作,正如你所期望的那样。问题出在其他地方。
-
你试过
[[cat mutableSetValueForKey:@"whiskers"] count]吗?这里有许多可能出错的地方,其中大部分将在模型对象的实现和/或与胡须对象的关系中。你是用线程限制还是队列限制? -
尝试遍历 cat.whiskers 看看是否有。
标签: ios core-data relationship fault