2010-11-08 33 views
1

当我启动我的3GS它坐落在为Default.png 4-5秒的应用程序。我不确定在这段时间内它在做什么。我将NSLog时序语句放在main和didFinishLaunchingWithOptions的顶部。直到Default.png消失的那一刻,main的NSLog语句才会打印到控制台,并且从主体顶部到didFinishLaunchingWithOptions底部的整个过程只需要1秒。iPhone应用程序滞后前主

那么,什么是我的应用程序做它开始main之前,我能做些什么来加快那个时候吗?

+0

你能从乐器中学到更多吗? – KevinDTimm 2010-11-08 15:37:57

+0

我真的不知道如何去做这件事来调查这个问题。这只是我的第二个“真正”的应用程序,我没有遇到过这样的问题。 – 2010-11-08 16:01:51

+0

我知道这并没有帮助,但我看到类似的延迟启动任何应用程序 - 我的或从应用程序商店 - 在iOS 4上的3GS上。 – Greg 2010-11-08 16:06:22

回答

1

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

+0

有关当时正在发生的事情的更多信息可能会从活动窗口。它可以从xcode的Window菜单项中获得。同样,如果文件正被复制到设备,Organizer窗口有时可以为您提供进度表。 – ojreadmore 2010-11-08 15:40:39

+0

4-5秒的持续时间实际上是直接从手机上的图标启动。使用Xcode时需要花费几秒钟的时间(如您所述)。 – 2010-11-08 15:46:43

+0

好的,请忽略我的回答。不知道你是通过主屏幕开始的。 – JustSid 2010-11-08 15:48:01

0

我建议你看一下你的plist文件和厦门国际银行文件(不是100%肯定,如果根视图获取之前或之后主加载,但值得一试)。另外,这个PNG文件有多大?尝试启动没有它,看看需要多长时间。

0

您的应用程序做到这一点,即使没有其他的程序驻留在内存中?我问的原因是:既然你已经观察到延迟似乎发生在输入main()之前,那么iOS可能认为需要更多的内存来运行你的程序。如果有在Suspended状态的其他应用程序,那么iOS的可能是忙,为了唤醒这些应用了暂时调用自己的视图控制器didReceiveMemoryWarning,也许最终告诉他们通过调用去了他们的应用程序委托的applicationWillTerminate:。也许这是需要时间的。

一个简单的测试,你可以执行将完全重新启动您的手机,然后启动你的应用程序了几次,但不运行任何东西第一。第一次调用应用程序后,我希望它能够快速启动(除非您的应用程序本身分配了大量内存!)。

如果你不想重新启动你的手机,你可以通过触摸你可以使用触摸并保持的红色减号来关闭每一个。然后运行你的应用程序,看看你是否仍然看到4到5秒的延迟。