3

我有奇怪的问题,当我通过任务管理器关闭我的应用程序时,我的应用程序在线崩溃

int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");

抛出“线程:1 信号 SIGKILL”错误,我根本无法重新打开我的应用程序。其他时候效果很好。请有人帮我解决这个问题。我是 cocos-2d 的新手,所以请温柔:(,谢谢。

4

1 回答 1

4

据我所知,这是正常的预期行为。我认为这看起来很奇怪的原因是,当您从 Xcode 运行时,您的可执行文件附加到 Xcode 中的调试器,因此它有时会阻止执行操作(例如,在崩溃或 SIG_KILL 场景中)。这只是在提示您使用任务栏关闭应用程序时苹果正在做什么......它会向进程发送 SIGKILL :-)

编辑:出于好奇,我进行了一些测试,发现applicationWillTerminate:不是首先调用的,这对于应用程序的消费者来说实际上是令人鼓舞的。你真的在 SIGKILLing 这些东西。我认为这意味着(使用后台处理工作流程)调用该方法的唯一情况是您选择退出后台执行。好消息是,为了以这种方式杀死一个应用程序,您需要先将其移至后台,因此拆卸的规范位置是 applicationWillResignActive:但您知道...

编辑:避免无法再次运行问题的说明:

  1. 从 Xcode 在您的设备上构建和运行应用程序
  2. 应用程序“启动并运行”后,在 Xcode 中单击“停止”
  3. 当应用程序关闭时,它现在与 Xcode “分离”,您可以根据需要终止它并重新打开。请记住,它将不再将任何 NSLog 调用或其他方式记录到 Xcode。
于 2012-07-07T06:28:04.383 回答