启动时间长...需要帮助

时间:2010-06-09 19:15:10

标签: iphone views startup launch watchdog

我的应用已经完成并且运行良好。所以现在我在旧的iPhone上运行它,该应用程序需要17.3秒才能启动!?!?我花了很多时间研究它,我发现加载这么长时间的原因是我有很多视图,每个视图都有一个png背景图像。我在IB和我的代码中提出的所有观点:

#import "MyTestAppDelegate.h"
#import "MyTestViewController.h"

@implementation MyTestAppDelegate

@synthesize window;
@synthesize viewController;


- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after app launch 

    [window addSubview:viewController.view];
    [window makeKeyAndVisible];
}


- (void)dealloc {
    [viewController release];
    [window release];
    [super dealloc];
}
@end

在代码的末尾说:

[window addSubview:viewController.view];

该应用似乎同时加载了笔尖中的所有视图。所有观点中的所有png都约为12mb。应用程序无需在启动期间同时加载所有视图。

有没有办法只能在启动时加载第一个“主页”视图? (所有视图都是同一个笔尖的一部分。)

2 个答案:

答案 0 :(得分:4)

您可以尝试将视图拆分为不同的笔尖。对于单个UIViewControllerUIView使用一个笔尖似乎是推荐的方式。

如果这样做,视图将仅在首次访问时加载。

答案 1 :(得分:2)

加载nib时,运行时会实例化在nib中冻结的所有对象。如果您在一个笔尖中拥有所有视图,那么每个视图都会初始化并加载,即使它不可见。否则,无法解析笔尖中的链接。

通常,每个笔尖应该是视图/视图控制器对。多个视图控制器可以安全地放在同一个笔尖中,因为它们通常是相对轻量级的对象。