3

我注意到对于具有自定义 getter 方法的属性

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

两个都

BOOL b = myObj.isActive

BOOL b = myObj.active

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

  • 这两种获取财产价值的方式有什么区别吗?
  • 什么是“推荐”方式?
4

1 回答 1

9

两者没有区别。当您想打破XYZ+的既定约定时,您可以使用自定义名称,setXYZ以防替代名称从英语语法的角度来看更有意义。例如,

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

读起来比

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

您可以将您的属性声明为isActive,但是您的 setter 将是setIsActive,这听起来比setActive.

于 2012-08-09T12:16:37.573 回答