IOS模拟器SigKill

3

当我在ios模拟器中尝试我的应用程序时,我发现当我从多任务栏中删除它并重新运行时,它会产生SIGKILL信号。(我通过停止应用程序、运行另一个应用程序,然后从多任务栏中删除第一个应用程序并重新运行它来实现这一点。)

我认为这可能与我最新的实验——添加核心数据有关,但在尝试简化条件后,看起来它在我测试的每个应用程序中都发生。

我的代码在我的注释所指示的位置停在调试器中:

#import <UIKit/UIKit.h>

int main(int argc, char *argv[])
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);    //<- STOPS with SIGKILL here
    [pool release];
    return retVal;
}

我发现它似乎像一个断点一样停止了。我点击“继续”按钮,它就会恢复,好像什么都没发生过。我在标记的行上设置了一个真正的断点,它就会在那里停止。点击“继续”可以让程序恢复,而不会发生SIGKILL信号。
我用Core Data的基本模板程序进行了尝试,没有进行任何修改,结果出现了信号。我尝试了其他不使用Core Data的程序,也出现了信号。当程序已经加载但未被调试时,程序的表现是正常的,即使在调试时出现了问题。
当然,SIGKILL不会给出任何有用的错误信息。
有人知道发生了什么吗?这似乎不是一个真正的问题,但我想确保我理解了它。
我正在使用XCODE4。
1个回答

4

从多任务栏中删除程序可以停止它的运行。这相当于在 OS X 中右键单击应用程序图标时获得的“强制退出”选项。

在 iOS 级别上,这显然是通过向应用程序发送称为 SIGKILL 的“终止”信号来完成的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接