我注意到Apple文档中的一些代码示例在声明属性时显示以下样式:
@property (nonatomic, getter=isActivated) BOOL activated;
据我所知,它允许您为getter方法指定某个名称。我想知道使用这种风格的原因和优势是什么。
我是否可以使用点符号来获取值(例如BOOL aBool = someObject.isActivated)?或者我应该使用
[someObject isActivated];
进入该物业?谢谢!
答案 0 :(得分:11)
不,getter
关键字只会更改方法名称。我们的想法是,您将像变量一样访问该属性:
if (self.activated) { ... }
self.activated = YES;
但当您向该对象发送消息时,它的可读代码为if ([self isActivated]) { ... }
。
答案 1 :(得分:5)
后者的种类。您不必使用方法调用someObject.activated
仍然可以工作 - 但它可以让您改进类的接口的语义。一个名为-activated
的方法可以返回ivar activated
的值,或者它可以做一些更深奥的东西(比如激活对象); isActivated
清楚地返回一个布尔值,表示该对象是否被“激活”。