我的理解是协议指定方法名称,而符合该协议的其他人执行方法的实现。
那么协议中声明的属性呢?那是实现一个属性意味着实现它的setter和getter吗?
属性是一个或两个具有特定签名的方法的花哨名称,Objective-C 提供了一个约定,允许您使用替代点.
语法调用它们。一个协议声明,比如说,一对
-(int) foo;
-(void)setFoo:(int)_foo;
方法和声明读写属性的协议:
@property (readwrite) foo;
所以你是绝对正确的,实现一个属性意味着实现一个或两个方法,这取决于你是实现只读、只写还是读写属性。
正如其他人所说,您只需要实现 getter 和或 setter (取决于属性)。
我要补充一点,你可以合成它们:
@property (nonatomic, 保留) NSObject * foo;
最终会在:
@synthesize 富;
协议只是确保对象实现一组方法的东西。例如,如果您要使用一个对象作为您的类的委托,您需要确保它实现了您将要调用的方法。这就是协议的重点。