完全被这个困扰了。当我解除我在iOS 8中呈现自定义演示文稿/转换的视图控制器时,出现此错误导致私有API崩溃:
*** Assertion failure in -[UICollectionView dealloc], /SourceCache/UIKit/UIKit- 3318.16.21/UICollectionView.m:665
我所知道的是,如果我删除其中任何一个:
[self.collectionView performBatchUpdates:^{
// append your data model to return a larger size for
// cell at this index path
} completion:nil];
那么它不会崩溃。
但是这些方法不会被调用dealloc,dismiss,viewWillDisappear。直译任何东西。这就像调用或消息在某些维度中被卡住并在视图被解除后调用。但是我无法记录它们,如果我试图放入阻止它们在这种情况下被调用的逻辑,它什么都不做。哪种方式有道理:它们实际上并没有被召唤。
UGH!想法?
更新
我刚刚遇到更多信息崩溃(仍然不透明)
malloc: *** mach_vm_map(size=2146844672) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
更新2:
我通过包装一些代码来阻止崩溃:
[self performAfterDelay:0 block:^{
//batch updates
}];
答案 0 :(得分:-1)
您也可以尝试使用:
[collectionView performBatchUpdates:nil completion:nil];
当你解雇你的控制器时。 我用这个
解决了同样的错误