私はObjective-Cを始めたばかりで、シングルトンの作成に関するこの例に出くわしました:
+ (BNRItemStore *) sharedStore
{
static BNRItemStore *sharedStore = nil;
if (!sharedStore)
sharedStore = [[super allocWithZone:nil] init];
return sharedStore;
}
私は彼が何をしようとしているのか理解しています - それは、同じインスタンスが存在する場合はそれを返し、存在しない場合は新しいインスタンスを作成することです。気になるのは次の行です。
static BNRItemStore *sharedStore = nil;
この行は、メソッドが呼び出されるたびに sharedStore を nil 値にリセットしませんか? この行が常に nil に設定されている場合、メソッドが以前に存在したインスタンスを返す方法がわかりません。
前もって感謝します。