Не удается найти объявление протокола для 'NSKeyValueObserving'. Но почему? - PullRequest
0 голосов
/ 13 августа 2011
@interface ThreadsViewController : UIViewController <NSKeyValueObserving>
{
}   

Ошибка: не удается найти объявление протокола для 'NSKeyValueObserving'.

Я использую Framework Foundation.Почему у меня есть эта ошибка?

Ответы [ 3 ]

4 голосов
/ 13 августа 2011

NSKeyValueObserving - это неофициальный протокол :

Неофициальный протокол - это категория NSObject, которая неявно делает практически все объекты принимающими протокол.(...) Реализация методов в неформальном протоколе не является обязательной.Перед вызовом метода вызывающий объект проверяет, реализует ли его целевой объект.

Нельзя принять неофициальный протокол с использованием синтаксиса угловых скобок, то есть для формальных протоколов.С неформальными протоколами вы просто реализуете методы протокола.Ваша попытка соответствовать протоколу NSKeyValueObserving в блоке @interface:

@interface ThreadsViewController : UIViewController <NSKeyValueObserving>

является причиной, по которой компилятор жалуется.

От Протоколы :

Будучи неофициальными, протоколы, объявленные в категориях, не получают большой языковой поддержки.Нет проверки типов во время компиляции и проверки во время выполнения, чтобы увидеть, соответствует ли объект протоколу.

0 голосов
/ 13 августа 2011

Вы уверены, что FoundationFramework добавлено в ваш проект?Если нет, добавьте его.

0 голосов
/ 13 августа 2011

Вы должны проверить документацию для NSKeyValueObserving. В том, что вы можете найти в верхней части, что находится в рамках Просто подтвердите, что вы включили эту платформу в свой проект.

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