私はシングルトンのNSAssert:なぜこのコードは有効ですか?
+(GameManager*)sharedGameManager {
@synchronized([GameManager class])
{
if(!_sharedGameManager)
[[self alloc] init];
return _sharedGameManager;
}
return nil;
}
+(id)alloc
{
@synchronized ([GameManager class])
{
NSAssert(_sharedGameManager == nil,
@"Attempted to allocated a second instance of the Game Manager singleton");
_sharedGameManager = [super alloc];
return _sharedGameManager;
}
return nil;
}
(そう
NSAssert
は実行を最初
[self alloc] init]
を停止する必要があります...と呼ばれている)
+alloc
が
+sharedGameManager
から呼び出されたときのように、静的
_sharedGameManager
変数が
nil
で、
+alloc
でNSAssertの使用を理解していません
あなたのお返事ありがとう
オハイオ州のはい真、私はそれが反対だったと確信していた理由はありません:)答えのおかげで! – Paul