Ифония верна, но он или она не говорит, что вам нужно написать метод init самостоятельно. Ваш метод init должен выглядеть примерно так:
- (id) init
{
if (self = [super init])
{
myMember1 = 0; // do your own initialisation here
myMember2 = 0;
}
return self;
}
Хотя в яблочной документации написано
Метод init, определенный в классе NSObject, не инициализируется; он просто возвращает себя.
и можно просто испытать желание написать
- (id) init
{
myMember1 = 0; // do your own initialisation here
myMember2 = 0;
return self;
}
это НЕПРАВИЛЬНО и не соответствует тому, что прямо указано в документации:
В пользовательской реализации этого (init) метода вы должны вызывать super
назначенный инициализатор, затем инициализировать и вернуть новый объект.
MUST. Не должен, мог, должен и т. Д.
Вы не должны предполагать, что init NSObject не изменится в будущем; ни суперкласс, из которого происходит ваш пользовательский класс.