我试图强制协议的所有实现者实现readonly属性。这是我的尝试:
@protocol Foo
@property(readonly) BOOL isPending;
@end
@interface Bar <Foo>
@end
@implementation Bar
- (BOOL) isPending {
return NO;
}
@end
为什么我在协议文件中收到警告?
属性'isPending'需要定义方法'isPending'
这是一个协议!协议不应该实现这些功能!实现协议的类应该实现这些功能,这正是我所做的。
答案 0 :(得分:1)
我无法重现您在Xcode 4.3.2下报告的问题。您是否有可能宣布要实施Foo
但忽略为isPending
添加吸气剂?诊断可能是将- (BOOL) isPending
添加到协议中以代替@property
,并查看是否存在任何差异。即使使用完全声明的getter和setter,你仍然可以使用点语法,因此它不应该与程序的任何其他部分产生语法差异。