1

我有一个房间实体与许多消息实体的关系。
我使用这个 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

谢谢。

4

0 回答 0