有一些罕见的数据损坏情况,而不是在同一个会话中尝试恢复,我想执行一些修复,然后关闭应用程序,以便下次启动是安全的。
如果没有像*(unsigned int *)0 = 0xDEADBEEF
这样愚蠢的东西使应用程序崩溃,我无法在Cocoa中找到导致正常关闭的API。
更新:找到关于这个主题的文档,这基本上证实了怀疑,并指出exit
是最后一个选择:
http://developer.apple.com/iphone/library/qa/qa2008/qa1561.html
答案 0 :(得分:8)
exit(0);
是的,它也适用于iPhone。
可替换地,
[[UIApplication sharedApplication] terminate];
答案 1 :(得分:0)
在调试Debug构建时,我更喜欢会碰到调试器的东西,所以我不仅知道原因,还可以在必要时查找更多细节。向任何非零对象发送随机消息是一种目标C方式。
[ UIApplication foo: bar ];
对于App store提交,-terminate肯定会因使用(官方)未记录的API而拒绝您的应用。据报道,退出(0)也是如此,即使它是一个记录在案的操作系统调用。
在OS 4.0之前,您始终可以向Safari发送URL,这会导致操作系统正常终止您的应用。不确定在OS 4.0中做什么以及在App Store合法之后。
答案 2 :(得分:0)
这对我没有任何意义 - 内部重置不应该没有资源。强制关闭应用程序会让用户感到厌烦。