Я хочу создать фабричный класс для создания объектов для меня (определенного класса).Factory class - stop init
В классе Factory будут только методы класса. Есть ли способ, с помощью которого я могу остановить alloc init от вызова класса?
Я хочу создать фабричный класс для создания объектов для меня (определенного класса).Factory class - stop init
В классе Factory будут только методы класса. Есть ли способ, с помощью которого я могу остановить alloc init от вызова класса?
Да, вы можете, определить инициализации у вас интерфейс, как
- (id) init __unavailable;
Вы можете вернуть self
в alloc и init. self
в данном случае означает, что объект класса, поэтому вызов метода этого объекта вызовет вызова методов класса
+ (id)alloc {
return (id)self;
}
+ (id)init {
return self;
}
'self' в 'init' должен нести объект, а не класс? То, что вы говорите, верно для 'alloc'. Поэтому в 'init'' [self class]' должно быть возвращено. –
Если вы возвращаете объект класса в 'alloc'? В 'init' self будет объектом, что ваше возвращение в' alloc', я думаю – Ossir
Ну, это будет работать во время выполнения. Во время компиляции это вызовет ряд предупреждений и при использовании ошибок ARC. Или требуется, чтобы все методы класса были объявлены (интерфейс должен выполнять) как метод класса, так и экземпляр. –
Что вы хотите достичь? Вы хотите убедиться, что это никогда не было вызвано? Если это так, перепишите alloc и init, не вызывайте суперкласса «alloc» и «init» и «return no». Но почему? «Пустой» класс не стоит много байтов памяти. –
Хорошая точка, спасибо. – Fogmeister