iPhone应用程序在主要之前启动时滞后

时间:2010-11-08 15:36:10

标签: iphone objective-c

当我在3GS上启动应用程序时,它会在Default.png上停留4-5秒。在这段时间里,我不确定它在做什么。我将NSLog时序语句放在main和didFinishLaunchingWithOptions的顶部。 main的NSLog语句在Default.png消失之前不会打印到控制台,而从didFinishLaunchingWithOptions的main到bottom的整个过程只需要1秒。

那么,我的应用程序在启动之前做了什么main,我该怎么做才能加快这段时间?

3 个答案:

答案 0 :(得分:1)

不要使用调试器从Xcode开始,这需要花费很多时间。当您通过主屏幕上的图标启动应用时,您会发现应用启动速度更快。

答案 1 :(得分:0)

我建议你查看你的plist文件和xib文件(不是100%确定root视图是否在main之前或之后加载,但值得一试)。另外,那个png文件有多大?尝试在没有它的情况下启动并查看需要多长时间。

答案 2 :(得分:0)

即使内存中没有其他程序,您的应用程序也会这样做吗?我问的原因是:既然您已经发现延迟似乎在进入main()之前发生,那么iOS可能认为需要更多内存才能运行您的程序。如果其他应用程序处于Suspended状态,那么iOS可能会暂时唤醒这些应用程序,以便在其视图控制器上调用didReceiveMemoryWarning,并最终通过调用其应用程序告诉他们离开代表的applicationWillTerminate:。也许这就是花时间。

您可以执行的一项简单测试是完全重启手机,然后启动您的应用几次,而无需先运行任何其他内容。在第一次调用你的应用程序后,我希望它能够快速启动(除非你的应用本身分配了大量的内存!)。

如果您不想重新启动手机,可以manually remove all of the apps from your multi-tasking switcher通过触摸可以使用触摸按住的红色减号来关闭每个手机。然后运行你的应用程序,看看你是否仍然看到4到5秒的延迟。