核心数据预取不适用于某种关系

时间:2012-06-24 04:49:12

标签: iphone ios cocoa-touch core-data

我正在对MessageObject执行获取请求并预取以下内容:

[fetchRequest setRelationshipKeyPathsForPrefetching:
   [NSArray arrayWithObjects:@"tags", @"date", nil]];

标签是多对多关系(也就是说,标签可以有很多消息,而消息可以有很多标签),而日期是一对一的关系(也就是说,一个消息只能有一个日期可以包含许多消息)。

当我向下滚动表格时,我同时访问了标签和日期。我启用了SQLite调试,因此每次Core Data执行错误请求时,它都会显示在日志中。出于某种原因,Date属性没有被预取,因为每次滚动时,我都会CoreData: annotation: fault fulfilled from database for : 0x85bc7b0 <x-coredata://736D04C4-7DB3-40B7-B208-79B5DFD68260/MBDate/p61>

但是,这不会出现在标签上,只有日期。如果我没有预取Tags属性,那么滚动时会为Tags显示相同的消息,所以我知道prefetch正在工作,而不是Date属性。

有什么我不了解预取的东西吗? Date对象有一个字符串属性,在我的cellForRow中,我访问了这个字符串属性,由于某种原因导致故障被触发(即使它已被预先实现,但是我已经误解了。)我是否误解了什么?

0 个答案:

没有答案