程序切换至后台时崩溃

来源:互联网 发布:校园网络规划方案 编辑:程序博客网 时间:2024/05/14 09:02

今天测试程序时发现,处在发送系统的发送邮件界面时,将程序切换到后台,此时程序会崩溃

原因

在cocos2d中的appdelegate中:

// getting a call, pause the game-(void) applicationWillResignActive:(UIApplication *)application{if( [navController_ visibleViewController] == director_ )[director_ pause];}// call got rejected-(void) applicationDidBecomeActive:(UIApplication *)application{if( [navController_ visibleViewController] == director_ )[director_ resume];}-(void) applicationDidEnterBackground:(UIApplication*)application{if( [navController_ visibleViewController] == director_ )[director_ stopAnimation];}-(void) applicationWillEnterForeground:(UIApplication*)application{if( [navController_ visibleViewController] == director_ )[director_ startAnimation];}

以上代码中,如果处在系统的发送邮件界面时,

[navController_ visibleViewController] == director_

这个判断不成立,因此系统无法执行暂停指令,还要在后台运行程序,因此而崩溃。

解决方法如下

将以上的判断改为:

[[navController_ viewControllers] containsObject:director_] && director_.isViewLoaded && director_.view.window


此时问题就解决了




	
				
		
原创粉丝点击