为什么NSCollectionView.makeItem有时会因EXC_BAD_ACCESS而崩溃?

时间:2017-01-13 16:27:00

标签: nscollectionview nscollectionviewitem

出于某种原因,我的应用程序刚刚开始这样做了几个月没有这样做。在看似无关的OperationQueue(我总是使用main之后,弹出了这个,所以它在线程1上完成。

Six attempts to call the same collectionView.makeItem function, the fourth failing with reason: EXC_BAD_ACCESS

正如您所看到的,我连续6次调用完全相同的函数,并且仅在第4次调用失败。我看不到任何模式......

1 个答案:

答案 0 :(得分:0)

我没有进行过非常广泛的挖掘或测试,但似乎像这样的块是罪魁祸首:

collectionView.performBatchUpdates({
    collectionView.reloadItems()
}, completionHandler: { [weak self] _ in
    // cleanup
})

似乎集合视图不喜欢在批量更新上下文中执行插入+删除操作。改变它似乎已经治愈了崩溃:

collectionView.reloadItems()
// cleanup