iOS模拟器:应用程序无法正确终止

时间:2012-12-13 11:59:50

标签: iphone objective-c ios ios-simulator

我有一个应用程序,当终止时需要同步sqlite数据库的内容 要知道应用程序何时终止,我在应用程序委托的applicationWillTerminate:method中放置了一个断点。但调试器从不在那里执行。
我知道两种终止应用程序的方法:

  1. 就像我在iPhone中一样:继续触摸应用程序图标,直到它开始颤抖,我点击'x';
  2. 停止调试器。
  3. 这两种方法都不会导致调试器进入我的应用程序委托的applicationWillTerminate:方法。
    如果我使用第一种方法,我甚至会得到一个例外:我在这一行中收到了SIGKILL:

    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    

    似乎模拟器即使没有该信号的处理程序也会启动SIGKILL 最后一条消息是mach_msg_trap。

1 个答案:

答案 0 :(得分:2)

来自文档

  

对于不支持后台执行或不支持后台执行的应用程序   与iOS 3.x或更早版本相关联,此方法始终在调用时调用   用户退出应用程序。对于支持的应用程序   后台执行时,此方法一般不会被调用   用户退出应用程序,因为应用程序只是移动到   那种情况下的背景。但是,可以调用此方法   应用程序在后台运行的情况(不是   由于某种原因,系统需要终止它。

您可能想要applicationWillResignActive: