2012-08-09 63 views
4

我注意到,对于一个自定义的getter方法的属性如何在Objective-C类使用自定义的getter方法

@interface MyClass : NSObject 
@property (nonatomic,getter=isActive) BOOL active; 
@end 

两个

BOOL b = myObj.isActive 

BOOL b = myObj.active 

可用于获取价值。在这两种情况下,调用isActive方法。

  • 这两种获取属性值的方法有什么区别吗?
  • 什么是“推荐”方式?
+0

很多关于这方面的信息是在这[问题](http://stackoverflow.com/questions/9220028/dot-syntax-vs-method-syntax-with-getter) – 2012-08-09 12:15:56

回答

9

两者没有区别。在从英语语法的角度来看,替代名称更有意义的情况下,如果要打破XYZ + setXYZ的既定惯例,则使用自定义名称。例如,

if ([myRobot isActive]) { 
    .... 
} 

读取优于

if ([myRobot active]) { 
    .... 
} 

你可以宣布你的财产为isActive,但随后你的二传手是setIsActive,这听起来比setActive略差。

相关问题