我有一个房间实体与许多消息实体的关系。
我使用这个 FRC 来获取一个房间中的所有消息:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(rid == %@) AND (status >= 0)", _room];
_fetchControllerForHistory = [Message MR_fetchAllSortedBy:@"serverDatetime,index" ascending:YES withPredicate:predicate groupBy:nil delegate:self];
过去几个月它运行良好,但在我更新应用程序以使用新版本的 MagicalRecord 后,问题出现了。
我猜我从服务器代码中获取的新数据有问题,现在看起来像这样:
dispatch_async(retrieve_queue(), ^{
ASIHTTPRequest *roomRequest = //code to genrate the request;
[roomRequest startSynchronous];
if (!roomRequest.error)
{
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
// code to parse the data
}];
}
});
提取完成后,每个房间都会有至少一条消息。但 FRC 不会返回任何结果,即使该房间中有一条消息并且状态为 > 0。
NSLog(@"%i,%i",_room.mids.count, self.fetchControllerForHistory.fetchedObjects.count);
1,0
谢谢。