正常に動作するタブ バー アプリケーションがありますが、アプリをバックグラウンドで実行せずに開くと、plist を読み込んでいるため、タブを開くのが通常より少し遅くなります。
アプリの起動時にすべてのデータをビューにロードすることはできますか?
正常に動作するタブ バー アプリケーションがありますが、アプリをバックグラウンドで実行せずに開くと、plist を読み込んでいるため、タブを開くのが通常より少し遅くなります。
アプリの起動時にすべてのデータをビューにロードすることはできますか?
すべての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 へのインターフェイスであれ、データの読み込みなどにシングルトン オブジェクトをよく使用します。とても便利なデザインパターンで、手に取ってとても勉強になりました。