0

我在我的应用程序中遇到了一个问题,didFinishLaunchingWithOptions 完成时间过长,这可能导致应用程序被终止。

我还收到了来自 iTunes Connect 的崩溃报告,这些报告似乎表明该应用程序启动时间过长。

这可能是因为我在 didFinishLaunchingWithOptions 期间同步加载了一些纹理,这个过程需要一秒钟以上的时间。

为了解决这个问题,我调用了延迟后加载数据的方法,方法如下:

[self performSelector:@selector(loadTextures) withObject:nil afterDelay:0.5f];

我理解的方式 - 虽然我可能错了 - 计划任务不会在不同的线程上执行,因此只会在 didFinishLaunchingWithOptions 完成后处理。

我的问题是: 是否有针对此类问题的最佳实践解决方案?我建议的解决方案是否符合我的预期?

此外,在这种情况下,即使在启动阶段之后,Apple 的看门狗也会检查应用程序的响应能力吗?

4

1 回答 1

0

我们在我们的电子书阅读器应用程序中遇到了类似的问题,我们将电子书(几 MB)从捆绑包复制到文档目录。到目前为止,用于复制书籍的调度选择器是最好的解决方案。同样的解决方案也适用于您的情况.我不确定苹果的看门狗,但我们的应用程序已在应用程序商店中运行并运行了一年多,并结合了此解决方案。

于 2013-08-29T16:30:58.387 回答