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

コードの最後にあるのは次のとおりです。

[window addSubview:viewController.view];

アプリは、ペン先のすべてのビューを同時に読み込んでいるようです。すべてのビューからのすべてのpngは約12MBです。起動時にアプリがすべてのビューを同時にロードする必要はありません。

起動時に最初の「ホーム」ビューのみをロードできる方法はありますか?(すべてのビューは同じペン先の一部です。)

4

2 に答える 2

4

ビューをさまざまなペン先に分割してみることができます。1つのペン先を1つ使用することは、推奨される方法UIViewControllerUIViewようです。

これを行うと、ビューは最初にアクセスされたときにのみロードされます。

于 2010-06-09T19:18:09.787 に答える
2

ペン先をロードすると、ランタイムはペン先で凍結乾燥されたすべてのオブジェクトをインスタンス化します。すべてのビューが1つのペン先にある場合は、表示されていなくても、すべてのビューが初期化されて読み込まれます。そうしないと、ペン先のリンクを解決できませんでした。

通常、各ペン先はビュー/ビュー-コントローラーのペアである必要があります。複数のViewControllerは通常、比較的軽量のオブジェクトであるため、同じペン先に安全に配置できます。

于 2010-06-09T21:30:57.170 に答える