我正在开发一款应用。在应用程序的某个特定阶段,我正在解雇ViewController并创建一个新的。我使用以下内容来解雇,
[self dismissViewControllerAnimated:NO completion:nil];
ios9 +设备正常运行。但是应用程序在ios7设备中崩溃了。我换了,
[self dismissViewControllerAnimated:YES completion:nil];
然后它在所有版本设备中都能正常工作。任何人都可以说,为什么应用程序之前在ios7设备中崩溃,为什么它在ios9 +设备中运行完美?
答案 0 :(得分:0)
我认为这与内存管理有关。
解决方案是在dealloc方法中将所有委托和数据源设置为nil。
对于iOS 7及更高版本,将委托和数据源设置为nil被认为是一种很好的做法,因为视图的寿命比视图控制器更长,并且在发布后会尝试访问它们的委托。