0

如果我放置任何可能挂起主线程的代码(像while(1)or的永恒循环):sleep(xxxxx)

- (void)viewDidLoad
{
    [super viewDidLoad];
    while (1) {

    }
    //[NSThread sleepForTimeInterval:10000];
}

在大约 50% 的发布中,我在发布后就获得了 SIGABORT。 在此处输入图像描述

到底是怎么回事?但是,如果程序启动,它永远不会(至少 10 分钟)按照Synchronous Networking On The Main Thread终止。watchdog那应该检查应用程序的响应性并终止卡住的那个呢?

我认为这里有一个关于这个的问题,它不包含有意义的答案。

在模拟器和设备上进行了测试。启动崩溃仅出现在 sim 卡上。尽管该程序既不会在设备上也不会在 sim 上终止。

所以实际上有两个问题:1.看门狗呢?2. sim 卡上的这个启动崩溃是什么?

PS对不起我的英语我希望你明白我的意思。欢迎你编辑我的帖子。

4

1 回答 1

0

如果您的应用程序崩溃,请使用调试器查看代码。将断点异常添加到第一个视图的-(void)viewDidLoad方法中作为起点,看看它在哪里崩溃。这通常会很快暴露错误。

我建议viewdidLoad,因为它被称为视图进入屏幕之前的那一刻。如果你的第一个屏幕崩溃了——我会从它的 viewDidLoad 方法开始。

于 2013-10-02T13:45:53.467 回答