4

我的理解是协议指定方法名称,而符合该协议的其他人执行方法的实现。

那么协议中声明的属性呢?那是实现一个属性意味着实现它的setter和getter吗?

4

3 回答 3

9

属性是一个或两个具有特定签名的方法的花哨名称,Objective-C 提供了一个约定,允许您使用替代点.语法调用它们。一个协议声明,比如说,一对

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

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

 @property (readwrite) foo;

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

于 2012-07-31T19:28:21.120 回答
1

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

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

@property (nonatomic, 保留) NSObject * foo;

最终会在:

@synthesize 富;

于 2012-07-31T19:38:27.460 回答
0

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

于 2012-07-31T18:52:57.410 回答