iOS強(qiáng)制退出APP

  • 強(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];
    
最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

  • UIAlertView* alert = [[UIAlertView alloc] initWithTitle:s...
    CodeLuck閱讀 15,901評(píng)論 11 5
  • https://nodejs.org/api/documentation.html 工具模塊 Assert 測(cè)試 ...
    KeKeMars閱讀 6,620評(píng)論 0 6
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,697評(píng)論 19 139
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,101評(píng)論 0 9
  • 從早上七點(diǎn)半, 玩到晚上八點(diǎn)半。 除了坐在設(shè)施上, 連吃飯都沒坐下, 中間一截已癱。
    十八呆閱讀 201評(píng)論 0 0

友情鏈接更多精彩內(nèi)容