Я часто вижу синглтон-классы, подобные следующим:
@implementation SomeImplementation
static SomeClass *sharedSomeObject = nil;
+ (void) someClassMethod {
sharedSomeObject = [[SomeImplementation alloc] init];
// do something
}
@end
someClassMethod может быть вызван в любое время - следует ли сначала проверять nil, прежде чем выделять новый экземпляр sharedSomeObject? Или, поскольку sharedSomeObject является статическим, проверка не нужна? Видя код, подобный этому, я всегда хочу поставить if (! SharedSomeObject) вокруг выделения.