@interface ThreadsViewController : UIViewController <NSKeyValueObserving>
{
}
错误:找不到'NSKeyValueObserving'的协议声明。
我正在使用Foundation框架。为什么我有这个错误?
答案 0 :(得分:4)
NSKeyValueObserving
是informal protocol:
非正式协议是NSObject上的一个类别,隐含地使得几乎所有对象都是该协议的采用者。 (......)非正式议定书中方法的实施是可选的。在调用方法之前,调用对象检查目标对象是否实现它。
您不能使用尖括号语法(即正式协议)采用非正式协议。使用非正式协议,您只需实现协议方法。您尝试符合NSKeyValueObserving
块中的协议@interface
:
@interface ThreadsViewController : UIViewController <NSKeyValueObserving>
是编译器抱怨的原因。
来自Protocols:
作为非正式的,在类别中声明的协议不会得到太多的语言支持。在编译时没有类型检查,也没有在运行时检查以查看对象是否符合协议。
答案 1 :(得分:0)
您应该查看NSKeyValueObserving的文档。在那里你可以找到最顶层的框架所在的位置。只需确认您在项目中包含该框架。
答案 2 :(得分:0)
您确定FoundationFramework已添加到您的项目中吗?如果没有,请添加它。