NSKeyValueObserving
- это неофициальный протокол :
Неофициальный протокол - это категория NSObject, которая неявно делает практически все объекты принимающими протокол.(...) Реализация методов в неформальном протоколе не является обязательной.Перед вызовом метода вызывающий объект проверяет, реализует ли его целевой объект.
Нельзя принять неофициальный протокол с использованием синтаксиса угловых скобок, то есть для формальных протоколов.С неформальными протоколами вы просто реализуете методы протокола.Ваша попытка соответствовать протоколу NSKeyValueObserving
в блоке @interface
:
@interface ThreadsViewController : UIViewController <NSKeyValueObserving>
является причиной, по которой компилятор жалуется.
От Протоколы :
Будучи неофициальными, протоколы, объявленные в категориях, не получают большой языковой поддержки.Нет проверки типов во время компиляции и проверки во время выполнения, чтобы увидеть, соответствует ли объект протоколу.