zoukankan      html  css  js  c++  java
  • 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];
      
  • 相关阅读:
    [转载] 如何更有效地说服开发人员接受你的BUG?
    Coded UI Demo
    等价类划分坐标图
    如何将Excel中的测试用例导入到QC中
    [转载]使用Team Foundation Server(TFS)进行项目Bug管理
    [转载] C# 自定义事件和委托
    TFS Guide
    二叉树的深度优先递归、非递归遍历、广度优先遍历 实例
    部署PHP+Apache+MySQL在Windows实战之例
    NLB的设置 Windows 2008 Server R2
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/11338085.html
Copyright © 2011-2022 走看看