私は、多くの場合、次のように設計されたシングルトンクラスを参照してください。iPhone SDK:静的変数を割り当てるときは、nilをチェックする必要がありますか?
@implementation SomeImplementation
static SomeClass *sharedSomeObject = nil;
+ (void) someClassMethod {
sharedSomeObject = [[SomeImplementation alloc] init];
// do something
}
@end
someClassMethodはいつでも呼び出すことができます - それはsharedSomeObjectの新しいインスタンスを割り当てる前に、最初はnilをチェックする必要がありますか?または、sharedSomeObjectは静的なので、チェックは不要ですか?このようなコードを見ると、私はいつも割り当ての周りにif(!sharedSomeObject)を入れたいと思っています。
function-static宣言は意図的であることに注意してください。コードをきれいに保つのに役立ち、+共有メソッドだけの可視性を減らします。このようにすることで、好きな場所で "sSingleton"という名前を再利用することもできます。名前空間の汚染はありません。 – par
また、someClassMethodを呼び出すたびにsharedSomeObjectの前のインスタンスがリークされていることを上記のコードで指摘します。ああ! – par
ありがとうございます。うれしい私は狂っていなかった。そのようにsSingletonを実装すると、どうやってそれを解放しますか?おそらくメモリを節約し、必要に応じて再作成するためにリリースしたいと思うケースがあると私は考えています。 – memmons