IOS7上dismissViewControllerAnimated与UIAlertView中delegate使用同一个对象

我不是个标题党,可是这函数名太长,偶也没办法。

【问题】

公司产品还在支持IOS6以上的系统,恰巧又遇上苹果开发人员设计的问题,正好在IOS7的设备上暴露出来了。

在一个功能界面VC上,他使用了dismissViewControllerAnimated函数将此VC关闭掉。与此同时有弹出一个UIAlertView,并且delegate指向了此VC。

在IOS7系统上运行时,你会发现VC被关闭了,UIAlertView也弹出来了。但是,当你点击上面的按钮时,APP就崩啦。

【问题分析】

由于VC被关闭,那么UIAlertView上的按钮响应就找不到对象了,然后造成系统崩溃。

【解决方法】

我个人认为这是个设计问题,因为此VC只应该负责处理功能,结果应该在它被关闭后的VC上进行提示。

但是,该问题在IOS8及以上的系统版本上不会出现了,估计苹果也发现了这样的问题就修改了。

暂时如果不想修改设计的话,那就将UIAlertView的delegate设置成nil就好了,反正只是一个提示,并没有其他事务处理。

你可能感兴趣的:(ios,Objective-C,ios7,uialertview)