iOS应用程序没有';不要暂停

iOS应用程序没有';不要暂停,ios,Ios,我创建了一个新项目,并向ApplicationIdentinterBackground添加了一个无限循环 while ( true) { NSLog(@"Running"); } 循环持续几分钟,从未结束,而根据苹果文档和我的经验,循环应该在5秒后暂停 为什么不呢?iOS对在调试器中运行的应用程序的处理方式不同,这里不应用5秒规则。当附加到调试器时,此规则也不适用于applicationWillTerminate:(不再重要) 原因很简单:如果你的应用程序在5秒后被杀死,你将无

我创建了一个新项目,并向
ApplicationIdentinterBackground
添加了一个无限循环

    while ( true)
{
    NSLog(@"Running");
}
循环持续几分钟,从未结束,而根据苹果文档和我的经验,循环应该在5秒后暂停


为什么不呢?

iOS对在调试器中运行的应用程序的处理方式不同,这里不应用5秒规则。当附加到调试器时,此规则也不适用于
applicationWillTerminate:
(不再重要)

原因很简单:如果你的应用程序在5秒后被杀死,你将无法调试这些方法。你没有时间做任何有意义的分析


不过,我不知道有任何文档对此进行了描述。

您确定它会持续运行几分钟,并且不会将标准输出刷新时间与实际运行时间混淆吗?它是否仅在连接到调试器时运行那么长时间,还是在没有调试器的情况下在手机上运行应用程序时也会运行那么长时间?在调试器内部运行会受到操作系统的不同对待。@DarkDust我认为可能是这样,但为什么苹果没有在任何地方描述它呢。伊恩·麦克唐纳:我想我不是。我已经将我的NSLOG设置为每1000000次循环迭代启动一次左右,但它仍然无限运行。有趣的是,当我使用
AFNetworking
时,在
didEnterBackground
中启动它们时,我不会收到成功/失败回调(就像应用程序挂起一样),除非我使用后台任务(同时进行调试)。