我不明白 NSAssert 在中的使用+alloc
,当+alloc
从 调用时+sharedGameManager
,静态_sharedGameManager
变量是nil
(所以NSAssert
应该在第一次[self alloc] init]
调用时停止执行......)
+(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;
}
感谢您的回答