iOS如何实现协议的@property

我所理解的是一个协议指定方法名称,并且符合该协议的其他人执行这些方法。

那么协议中声明的属性呢? 那是为了实现一个财产的手段来实现其二传手和吸气?

属性是一个或两个具有特定签名的方法的奇特名称,Objective-C提供了一个约定,允许您使用替代点来调用它们. 句法。 一个协议声明,例如,一对之间没有区别

 -(int) foo; -(void)setFoo:(int)_foo; 

方法和一个声明读写属性的协议:

  @property (readwrite) foo; 

所以你是绝对正确的,实现一个属性意味着实现一个或两个方法,取决于你是否实现只读,只写或读写属性。

正如其他人所说的,你只需要实现getter和/或setter(取决于属性)。

我想补充一点,你可以合成它们:

@property(nonatomic,retain)NSObject * foo;

最终会在:

@synthesize foo;

协议只是确保一个对象实现一组方法。 例如,如果要将对象用作类的委托,则需要确保它实现了要调用的方法。 这是一个协议的重点。