我在我的应用中遇到一个问题,即didFinishLaunchingWithOptions花了太长时间才完成,可能导致应用被终止的原因。
我也从itunes connect获得了崩溃报告,这似乎表明该应用程序需要很长时间才能启动。
这可能是因为我在didFinishLaunchingWithOptions期间同步加载了一些纹理,这个过程需要一秒多的时间。
为了解决这个问题,我通过以下方式调用延迟后加载数据的方法:
[self performSelector:@selector(loadTextures) withObject:nil afterDelay:0.5f];
我理解的方式 - 虽然我可能错了 - 计划任务不会在不同的线程上执行,因此只会在完成didFinishLaunchingWithOptions后处理。
我的问题是: 对于这样的问题,有没有最佳实践解决方案?我建议的解决方案是否符合我的意图?
此外,苹果的监管机构是否知道即使在启动阶段之后也会检查应用程序的响应性?
答案 0 :(得分:0)
我们的电子书阅读器应用程序中存在类似的问题,我们将电子书(几个MB)从包中复制到文档目录。用于复制书籍的调度选择器是迄今为止最好的解决方案。同样的解决方案在您的工作正常我不确定苹果的看门狗,但是我们的应用程序已经在应用程序商店上运行并运行了超过一年,并且已经整合了这个解决方案。