在UICollectionView endUpdates中崩溃

时间:2013-01-15 04:36:47

标签: iphone ios objective-c ipad uicollectionview

我有一个数据管理器(单例类),它从我的后端服务加载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

0 个答案:

没有答案