Нет видимого @interface для пользовательского конструктора - PullRequest
0 голосов
/ 05 ноября 2018

Я пытался написать собственный инициализатор, который выглядит примерно так:

 - (id) initWithTitle:(NSString *) title withDescription:(NSString *) desc {
    self = [super initWithTitle: title withDescription: desc];
    if (self) {
        self.title = title;
        description = desc;
        duration = 0.0;
        priority = 0;
    }
    return self;
}

Но по какой-то причине, если я использую [super initWithTitle: title withDescription: desc], он говорит мне, что нет видимого @interface для 'NSObject', объявляющего мой селектор, несмотря на то, что я уже определил конструктор в файле .h.

Я мог бы просто использовать [super init], но я просто хотел знать, что я сделал неправильно в будущем.

1 Ответ

0 голосов
/ 05 ноября 2018

Линия:

self = [super initWithTitle: title withDescription: desc];

инициализирует объект, вызывая его супер-конструктор. Однако, если суперкласс не содержит такого конструктора, который вы собираетесь вызывать, появится сообщение об ошибке.

Замените ваш звонок на [super init], затем Command + Click на init, чтобы открыть NSObject.h, вы увидите, что поддерживается только init.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...