UICollectionView dealloc断言失败崩溃

时间:2015-01-09 19:12:04

标签: ios cocoa-touch ios8

完全被这个困扰了。当我解除我在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
}];

1 个答案:

答案 0 :(得分:-1)

您也可以尝试使用:

  

[collectionView performBatchUpdates:nil completion:nil];

当你解雇你的控制器时。 我用这个

解决了同样的错误