-
強(qiáng)制退出有四種:
- exit();
- abort();
- assert();
- 主動(dòng)制造一個(gè)崩潰;
-
exit()
1.附加了關(guān)閉打開文件與返回狀態(tài)碼給執(zhí)行環(huán)境,并調(diào)用你用atexit注冊(cè)的返回函數(shù);
2.警告:不要使用exit函數(shù),調(diào)用exit會(huì)讓用戶感覺程序崩潰了,不會(huì)有按Home鍵返回時(shí)的平滑過(guò)渡和動(dòng)畫效果;
3.另外,使用exit可能會(huì)丟失數(shù)據(jù),因?yàn)檎{(diào)用exit并不會(huì)調(diào)用-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.這是默認(rèn)的程序結(jié)束函數(shù),這種方式可能會(huì)或可能不會(huì)以刷新與關(guān)閉打開的文件
或刪除臨時(shí)文件,這與你的設(shè)計(jì)有關(guān)。
2.abort就像是點(diǎn)擊了home鍵有過(guò)渡動(dòng)畫,使用的時(shí)建議選擇abort();abort(); -
assert()
1.assert(1)為oc中的宏,只在debug模式下有用,當(dāng)條件成立時(shí),程序不會(huì)終止掉;當(dāng)條件不成立時(shí),程序終止。
2.oc程序中建議用assert(condition)函數(shù),推薦使用assert宏;
3.方法未實(shí)現(xiàn)完,放個(gè)ASSERT(0)調(diào)試運(yùn)行時(shí)執(zhí)行到此為報(bào)錯(cuò)中斷,好知道成員函數(shù)還沒寫完。
4.另一種情況是預(yù)防性的錯(cuò)誤檢查,在認(rèn)為不可能的執(zhí)行到的情況下加一句ASSERT(0),如果運(yùn)行到此,代碼邏輯或條件就可能有問(wèn)題。assert(0); //作用是現(xiàn)計(jì)算表達(dá)式expression ,如果其值為假(即為0),那么它先向stderr打印一條出錯(cuò)信息,然后通過(guò)調(diào)用 abort 來(lái)終止程序運(yùn)行 assert(1); //為oc中的宏,只在debug模式下有用,當(dāng)條件成立時(shí),程序不會(huì)終止掉;當(dāng)條件不成立時(shí),程序終止。 -
主動(dòng)制造一個(gè)崩潰
這種方式自然是不推薦的啦!如果你有崩潰日志收集功能則會(huì)產(chǎn)生誤報(bào),有正規(guī)途徑還是走正規(guī)途徑吧~~~~
[[NSArray array] objectAtIndex:5];
iOS強(qiáng)制退出APP
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- UIAlertView* alert = [[UIAlertView alloc] initWithTitle:s...
- https://nodejs.org/api/documentation.html 工具模塊 Assert 測(cè)試 ...
- Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
- 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....