Вы объявляете следующие методы доступа / мутаторы свойств (getter / setters), но не внедряете их в свой файл .m.
-(NSString *)name;
-(void)setName:(NSString *)newName;
-(double)frequency;
-(void)setFrequency:(double)newFrequency;
-(char)band;
-(void)setBand:(char)newBand;
Вам необходимо реализовать все 6 этих методов в файле .m, если вы хотите удалить предупреждение о неполной реализации.
Вы фактически говорите в .h файле, что это то, что собирается делать ваш объект, а не в .m. Это не приведет к ошибке, так как обмен сообщениями с целью-c означает, что сообщение будет передано в NSObject для обработки, что также не будет иметь соответствующей реализации, а сообщения будут просто игнорироваться. Мне не нравится то, как это показано только в качестве предупреждения - но вы идете.
Тем не менее, я бы не стал создавать такие свойства (есть более точные способы сделать это в target-c с использованием @property), я бы удалил эти объявления методов в .h и заменил их на:
@property (nonatomic, retain) NSString *name;
@property (nonatomic, assign) double frequency;
@property (nonatomic, assign) char band;
Эти объявления свойств находятся в том же месте, что и объявления методов.
, а затем добавьте в файл .m следующее:
@synthesize name;
@synthesize frequency;
@synthesize band;
Это избавит вас от необходимости писать весь тот шаблонный код доступа / мутатора, который вы в настоящее время не видите. Опять же, они идут в той же области кода, что и реализации методов. Фактически компилятор собирается автоматически создавать методы name и setName.
Этот код не проверен - но он должен указать вам правильное направление для исправления неполной реализации. может также исправить вашу ошибку доступа, но для этого может потребоваться более детальный анализ трассировки стека.
Еще один момент Я не уверен, что написанный код даже должен использовать методы или свойства get / set. Вы можете попробовать удалить объявления методов из .h и посмотреть, работает ли он. Кажется, что все обращения к имени, частоте и диапазону - все изнутри объекта.