如何在Objective-C类中使用自定义getter方法

如何在Objective-C类中使用自定义getter方法,objective-c,getter-setter,Objective C,Getter Setter,我注意到,对于具有自定义getter方法的属性 @interface MyClass : NSObject @property (nonatomic,getter=isActive) BOOL active; @end 两者 及 可用于获取值。在这两种情况下,都会调用isActive方法 这两种获取属性值的方法有什么区别吗 “推荐”方式是什么 两者之间没有区别。当您想打破XYZ+setXYZ的既定惯例时,如果从英语语法的角度来看,备选名称更有意义,则可以使用自定义名称。比如说, if ([m

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

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

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

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

    • 两者之间没有区别。当您想打破
      XYZ
      +
      setXYZ
      的既定惯例时,如果从英语语法的角度来看,备选名称更有意义,则可以使用自定义名称。比如说,

      if ([myRobot isActive]) {
          ....
      }
      
      读起来比

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

      您可以将您的属性声明为
      isActive
      ,但是您的setter将是
      setIsActive
      ,这听起来比
      setActive
      稍差一些
      if ([myRobot isActive]) {
          ....
      }
      
      if ([myRobot active]) {
          ....
      }