iOS退出APP
-
强制退出有四种:
- exit();
- abort();
- assert();
- 主动制造一个崩溃;
-
exit()
1.附加了关闭打开文件与返回状态码给执行环境,并调用你用atexit注册的返回函数;
2.警告:不要使用exit函数,调用exit会让用户感觉程序崩溃了,不会有按Home键返回时的平滑过渡和动画效果;
3.另外,使用exit可能会丢失数据,因为调用exit并不会调用-applicationWillTerminate:方法和UIApplicationDelegate方法;- (void)exitApplication { [UIView beginAnimations:@"exitApplication" context:nil]; [UIView setAnimationDuration:0.5]; [UIView setAnimationDelegate:self]; [UIView setAnimationTransition:UIViewAnimationCurveEaseOut forView:self.window cache:NO]; [UIView setAnimationDidStopSelector:@selector(animationFinished:finished:context:)]; self.window.bounds = CGRectMake(0, 0, 0, 0); [UIView commitAnimations]; } - (void)animationFinished:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context { if ([animationID compare:@"exitApplication"] == 0) { exit(0); } } exit(1)是异常退出; exit(0)是正常退出;
-
abort()
1.这是默认的程序结束函数,这种方式可能会或可能不会以刷新与关闭打开的文件
或删除临时文件,这与你的设计有关。
2.abort就像是点击了home键有过渡动画,使用的时建议选择abort();abort();
-
assert()
1.assert(1)为oc中的宏,只在debug模式下有用,当条件成立时,程序不会终止掉;当条件不成立时,程序终止。
2.oc程序中建议用assert(condition)函数,推荐使用assert宏;
3.方法未实现完,放个ASSERT(0)调试运行时执行到此为报错中断,好知道成员函数还没写完。
4.另一种情况是预防性的错误检查,在认为不可能的执行到的情况下加一句ASSERT(0),如果运行到此,代码逻辑或条件就可能有问题。assert(0); //作用是现计算表达式expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行 assert(1); //为oc中的宏,只在debug模式下有用,当条件成立时,程序不会终止掉;当条件不成立时,程序终止。
-
主动制造一个崩溃
这种方式自然是不推荐的啦!如果你有崩溃日志收集功能则会产生误报,有正规途径还是走正规途径吧~~~~
[[NSArray array] objectAtIndex:5];
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
2015-08-12 android Activity之间数据传递 Parcelable和Serializable接口的使用
2013-08-12 java时间的转换
2013-08-12 深入Animation,在SurfaceView中照样使用Android—Tween Animation!
2013-08-12 Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的关系