我理解的是协议指定方法名称,并且符合该协议的其他人执行方法。
那么协议中声明的属性呢?实现属性是否意味着实现其setter和getter?
答案 0 :(得分:9)
属性是一个或两个具有特定签名的方法的奇特名称,Objective-C提供了一种约定,允许您使用备用点.
语法调用它们。一个协议声明,例如,一对
-(int) foo;
-(void)setFoo:(int)_foo;
方法和声明读写属性的协议:
@property (readwrite) foo;
所以你是绝对正确的,实现一个属性意味着实现一个或两个方法,具体取决于你是实现只读,只写还是读写属性。
答案 1 :(得分:1)
正如其他人所说,你只需要实现getter和/或setter(取决于属性)。
我想补充一点,你可以合成它们:
@property(nonatomic,retain)NSObject * foo;
最终会出现:
@synthesize foo;
答案 2 :(得分:0)
协议只是确保对象实现一组方法的东西。例如,如果您要将对象用作类的委托,则需要确保它实现了您要调用的方法。这是协议的重点。