使协议的属性符合 KVC

Making a protocol's property KVC compliant

我正在使用 Xcode 6.1.1 和 iOS SDK 8.1

我有一个从 NSObject 派生的 class,但它的属性是在一个协议中定义的(它被称为 phoneNumber,我不认为这是一个有问题的名称)。我收到错误消息

this class is not key value coding-compliant for the key phoneNumber.

所以我自己实现了 valueForKey:setValue:ForKey: 方法并修复了它。是否有更好的方法使其符合 KVC 标准?

自动 属性 合成不会合成协议中声明的属性,您需要合成它。(或手动创建 getter 和 setter)。

在实现协议的 class 中,在实现文件中添加这一行。

@synthesize phoneNumber = _phoneNumber;