0

バックエンド サービスから JSON をロードし、キャッシュを実行したり、ディスクに書き込んだりするデータ マネージャー (シングルトン クラス) があります。

そのため、このメソッドを : の中に入れます。

dispatch_sync(dispatch_queue_create("com.testing.serialQueue", DISPATCH_QUEUE_SERIAL), ^{
      //my method that does disk caching here
});

すべてが完了したら、このメソッド内で、次を使用して UINotification を作成します。

 dispatch_async(dispatch_get_main_queue(),^{
                            [[NSNotificationCenter defaultCenter] postNotificationName:kNewStoriesNotification object:nil userInfo:userInfo];
                        });

通知内で次のことを行います。

[self.collectionView performBatchUpdates:^{
        if ([highlightItems count] > 0){
            //doing some computation to find the index path
            [weakSelf.collectionView insertItemsAtIndexPaths:indexPathArray];
        }

    } completion:^(BOOL finished) {

    }];

そして時々私にこのエラーを与えます:

 *** Assertion failure in -[UICollectionView _endItemAnimations], /SourceCache/UIKit_Sim/UIKit-2372/UICollectionView.m:2662

理由はわかりません..しかし、GCDと通知の使用に関係していると思います。何か案は?

アップデート:

Even if I remove the insertItemsAtIndexPaths: it still crashes at performBatchUpdates.. wonder why
4

0 に答える 0