Совершенно тупик на этом. Когда я распускать мой контроллер представления, который будет представлен с пользовательской презентацией/переходом в прошивке 8, я получаю аварии на частную API с этой ошибкой:UICollectionView dealloc assertation fail crash
*** 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, увольняют, viewWillDisappear. Буквально ничего. Это похоже на то, что вызовы или сообщения задерживаются в каком-то измерении и вызываются после отклонения представления. Но я не могу их зарегистрировать, и если я попытаюсь ввести логику, которая не позволяет им быть вызванным в этом случае, она ничего не делает. Какой вид имеет смысл: они на самом деле не называются.
UGH! Идеи?
Update:
Я только что получил аварии с большим количеством информации (Тхо все еще непрозрачной)
malloc: *** mach_vm_map(size=2146844672) failed (error code=3)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug
Update 2:
Я получил его, чтобы остановить сбой, обернув некоторые код в:
[self performAfterDelay:0 block:^{
//batch updates
}];
Этот ответ выглядит как проблема с аналогичной проблемой: [mach_vm_map failed (код ошибки = 3)] (http://stackoverflow.com/a/20976220/35499). В основном это предлагает использовать инструменты, чтобы увидеть, где вы можете протекать в памяти. – dean
Ну, я сделал это. И их нет. Я узнал, как предотвратить крах (но не причину). См. Обновление 2. –