1

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

ありがとう。

4

0 に答える 0