0

正常に動作するタブ バー アプリケーションがありますが、アプリをバックグラウンドで実行せずに開くと、plist を読み込んでいるため、タブを開くのが通常より少し遅くなります。

アプリの起動時にすべてのデータをビューにロードすることはできますか?

4

1 に答える 1

1

すべてのView Controllerがクエリできるサービスクラスを使用することをお勧めします。このようなヘルパー クラスを定義する一般的な方法は、シングルトン デザイン パターンを使用することです。シングルトン パターンでは、シングルトン クラスのインスタンスを 1 つだけインスタンス化できます。この方法を使用すると、このサービスを利用する他のすべてのインスタンスがこの 1 つのインスタンスを通過することがわかります。

これは私が通常使用するスニペットです。最適ではない可能性があるため、他のユーザーに変更を提案してください:

//.h:

+ (MySingletonServiceInstance *)sharedInstance;

//.m:

static MySingletonServiceInstance *sharedInstance = nil;

+ (MySingletonServiceInstance *)sharedInstance{
    @synchronized(self){
        if(sharedInstance == nil)
            sharedInstance = [[self alloc] init];
    }
    return sharedInstance;
}

- (id)init {    
    if ((self = [super init])) {
        //Set up
    }
    return self;
}

他のクラス (データを必要とするビュー コントローラーなど) では、次のようなことができます。

[[MySingletonServiceInstance sharedInstance] doSomething];

また

NSDictionary *myData = [MySingletonServiceInstance sharedInstance].data;

そして、同じオブジェクトを呼び出します。Web サービスへのインターフェイスであれ、ローカルの CoreData へのインターフェイスであれ、データの読み込みなどにシングルトン オブジェクトをよく使用します。とても便利なデザインパターンで、手に取ってとても勉強になりました。

于 2013-01-07T22:24:52.763 に答える