0

我试图强制协议的所有实现者实现只读属性。这是我的尝试:

@protocol Foo
@property(readonly) BOOL isPending;
@end

@interface Bar <Foo>
@end

@implementation Bar
- (BOOL) isPending {
    return NO;
}
@end

为什么我在协议文件中收到警告?

属性“isPending”需要定义方法“isPending”

这是一个协议!协议不应该实现这些功能!实现协议的类应该实现功能,这正是我所做的。

4

1 回答 1

1

我无法重现您在 Xcode 4.3.2 下报告的问题。是否有可能您已经声明了要实现的东西Foo但忽略了为其添加吸气剂isPending?诊断可能是添加- (BOOL) isPending到协议中代替@property并查看是否有任何差异。即使使用完全声明的 getter 和 setter,您仍然可以使用点语法,因此它不应该对程序的任何其他部分产生语法差异。

于 2012-04-07T00:14:31.703 回答