0

我的应用程序全部完成并且运行良好。所以现在我在旧 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

在代码的末尾 where is 说:

[window addSubview:viewController.view];

该应用程序似乎同时加载了笔尖中的所有视图。所有视图中的所有 png 大小约为 12mb。应用程序无需在启动过程中同时加载所有视图。

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

4

2 回答 2

4

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

如果你这样做,视图只会在第一次访问时被加载。

于 2010-06-09T19:18:09.787 回答
2

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

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

于 2010-06-09T21:30:57.170 回答