Я создал одноэлементный класс, используя этот код:Создание синглтона и переопределение метода класса Alloc
static MyClass *sharedMyClass = nil;
+ (id)getInstance {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyClass = [[self alloc] init];
});
return sharedMyClass;
}
моего беспокойство о том, что пользователи моего класса могут вызвать метод Alloc, может создать другую инстанциацию из класс. Поэтому это больше не будет односторонним. Должен ли я переопределить метод alloc? Если это так, я предлагаю переопределить это следующим образом:
+ (id)alloc
{
id instance = sharedMyClass;
if (instance == nil) {
instance = [super alloc];
}
return instance;
}
+ (ID) Alloc {@synchronized ([MyCLASS класс]) { NSAssert (_sharedNavTheme == ноль, @ "Попытка выделить второй экземпляр одноточечного."); _sharedMyClass = [super alloc]; return _sharedMyClass; } return nil; } –