【发布时间】:2010-07-29 11:36:55
【问题描述】:
升级到 sdk 4 后我的应用在退出时崩溃,错误是内存访问错误。
我想如果我把“exit(0)”放在“applicationDidEnterBackground:(UIApplication *)application”中,应用程序会正常退出。
但是,这样可以吗?到目前为止,这是我对该问题的唯一“解决方案”。
这次 NSZombie 帮不上什么忙……
【问题讨论】:
升级到 sdk 4 后我的应用在退出时崩溃,错误是内存访问错误。
我想如果我把“exit(0)”放在“applicationDidEnterBackground:(UIApplication *)application”中,应用程序会正常退出。
但是,这样可以吗?到目前为止,这是我对该问题的唯一“解决方案”。
这次 NSZombie 帮不上什么忙……
【问题讨论】:
如果存在错误的内存访问问题,我认为最好的解决方案应该是找到并修复内存问题。
但是,如果你想坚持“防止进入后台”的方式,你应该使用适当的方法:禁用多任务处理。它被描述为here。
如果您不希望应用程序在退出时保留在后台,您可以通过将 UIApplicationExitsOnSuspend 键添加到应用程序的 Info.plist 文件并将其值设置为 YES 来明确选择退出后台执行模型
【讨论】:
不要将 exit(0) 放在 applicationDidEnterBackground:(UIApplication *)application.
相反,在 Info.plist 文件中添加一个键来标记您希望应用程序在暂停时退出。详情请看Property List Options。
【讨论】:
我找到了问题的根源。问题是我需要执行影响主线程上的界面或视图的所有任务。弄清楚这一点也解决了许多其他给我带来麻烦的错误。看来 iOS 4 对线程使用的限制更多
【讨论】: