1 つのRoomエンティティから複数のMessageエンティティへの関係があります。
この FRC を使用して、1 つの部屋ですべてのメッセージを取得します。
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
}];
}
});
フェッチが完了すると、すべてのルームに少なくとも on メッセージが表示されます。ただし、FRC は、その部屋に 1 つのメッセージがあり、ステータスが > 0 の場合でも結果を返しません。
NSLog(@"%i,%i",_room.mids.count, self.fetchControllerForHistory.fetchedObjects.count);
1,0
ありがとう。