可以在“applicationDidEnterBackground:(UIApplication *)application”中使用exit(0)吗?

时间:2010-07-27 09:20:41

标签: iphone ios4

升级到sdk 4后,我的应用程序在退出时崩溃,错误是内存访问不良。

我想如果我在“applicationDidEnterBackground:(UIApplication *)应用程序”中输入“exit(0)”,应用程序将正常退出。

但是,这样可以吗?到目前为止,这是我解决问题的唯一“解决方案”。

NSZombie这次不太有用......

3 个答案:

答案 0 :(得分:5)

如果存在内存访问问题,我认为最佳解决方案应该是查找并修复内存问题。

但是,如果您想坚持“阻止进入后台”的方式,您应该使用适当的方法:禁用多任务处理。它被描述为here

  

如果您不希望应用程序在退出时保留在后台,则可以通过将UIApplicationExitsOnSuspend键添加到应用程序的Info.plist文件并将其值设置为YES来明确选择退出后台执行模型

答案 1 :(得分:1)

不要将exit(0)放在applicationDidEnterBackground:(UIApplication *)应用程序中。

相反,在Info.plist文件中添加一个键,以标记您希望应用程序在挂起时退出。有关详细信息,请查看Property List Options

答案 2 :(得分:0)

我找到了问题的根源。问题是我需要执行影响主线程上的接口或视图的所有任务。弄清楚这也解决了多个其他错误,让我头脑。似乎iOS 4对线程使用的限制更多