ios7和ios9 +中dismissViewController的异常行为

时间:2016-12-08 05:48:46

标签: ios objective-c xcode viewcontroller

我正在开发一款应用。在应用程序的某个特定阶段,我正在解雇ViewController并创建一个新的。我使用以下内容来解雇,

[self dismissViewControllerAnimated:NO completion:nil];

ios9 +设备正常运行。但是应用程序在ios7设备中崩溃了。我换了,

[self dismissViewControllerAnimated:YES completion:nil];

然后它在所有版本设备中都能正常工作。任何人都可以说,为什么应用程序之前在ios7设备中崩溃,为什么它在ios9 +设备中运行完美?

1 个答案:

答案 0 :(得分:0)

我认为这与内存管理有关。

解决方案是在dealloc方法中将所有委托和数据源设置为nil。

对于iOS 7及更高版本,将委托和数据源设置为nil被认为是一种很好的做法,因为视图的寿命比视图控制器更长,并且在发布后会尝试访问它们的委托。