2
完全難倒了這一點。當我解僱正在被呈現在iOS 8的自定義演示/轉移我的視圖控制器,我得到的私有API崩潰,此錯誤:UICollectionView dealloc聲明失敗崩潰
*** 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
}];
這個答案看起來像它處理類似的問題:[mach_vm_map失敗(錯誤代碼= 3)](http://stackoverflow.com/a/20976220/35499)。基本上它建議使用工具來查看你可能在哪裏泄漏內存。 – dean 2015-01-09 20:13:31
嗯,我做到了。並沒有任何。我確實發現瞭如何防止崩潰(但不是原因)。請參閱更新2。 – 2015-01-09 21:24:41