Если я определяю подпротокол протоколас дополнительными методами, тогда определите и реализуйте категорию на NSObject
, которая объявляет соответствие этому протоколу, я получаю предупреждения о компиляции. Компилятор жалуется, что моя категория NSObject
не реализует все методы, объявленные в протоколе NSObject
.Категория при реализации протокола NSObject вызывает предупреждения Unimplemented Method
Я не понимаю, почему это так. NSObject
класс (в <Foundation/NSObject.h>
заявляет, что оно соответствует протоколу NSObject
(и, избыточно, что он реализует эти методы?) - не следует, что хватит
Что является причиной проблемы здесь
Пример кода? - если вы собираете это, вы увидите предупреждение о NSObject (CategoryToImplementMyProtocol)
реализации:
@protocol MyProtocol <NSObject>
- (void)myMethod;
@end
@interface NSObject (CategoryToImplementMyProtocol) <MyProtocol>
@end
@implementation NSObject (CategoryToImplementMyProtocol)
- (void)myMethod
{
NSLog("A la peanut butter sandwiches!");
}
@end
Я нашел несколько вопросов, касающихся этого, но все ответы были в «сделать это обходной путь!» разнообразие, не то, что " это является причиной проблемы «разнообразия (или просто просто неправильно, несмотря на то, что он принят ...). Я знаю, что могу обойти это. Я бы очень хотел понять , почему не удается.
Извините! Было ошибкой при расшифровке кода (если это какое-то утешение, я отредактировал вопрос перед тем, как увидеть ваш ответ, хотя я думаю, что это все еще имеет смысл, нет? Поскольку 'MyProtocol' является подпротоколом' NSObject'). –
:) Но я думаю, что этот случай (который я даже не представлял, что произойдет) немного запутаннее, чем тот, на который я ответил. Поскольку такая проблема не возникает при реализации таких категорий в классах, которые наследуют '', но не принимают ее сами. –
Да, я все еще не полностью вижу проблему - почему недостаточно, чтобы основной класс «NSObject», который я добавляю в свою категорию, тоже уже объявляет соответствие протоколу «NSObject»? –