苹果建议以这种方式声明BOOL属性:

@property (nonatomic, assign, getter=isWorking) BOOL working;

当我使用Objective-C 2.0属性和点表示法时,我使用self.working访问此属性。我知道我也可以使用[self isWorking],但是不必这样做。

因此,当我到处都使用点表示法时,为什么还要定义一个额外的属性?简单地写可以吗
@property (nonatomic, assign) BOOL working;

还是在我的情况下编写getter=isWorking有任何好处(点符号的用法)?

谢谢!

最佳答案

Apple仅建议出于样式目的而声明isX getter。只要使用正确的名称的点符号或消息符号,是否自定义 setter/getter 名称都没有关系。如果要使用点号,则没有什么区别,您仍然可以通过属性名称来访问它:

@property (nonatomic, assign) BOOL working;

[self setWorking:YES];         // Or self.working = YES;
BOOL working = [self working]; // Or = self.working;

或者
@property (nonatomic, assign, getter=isWorking) BOOL working;

[self setWorking:YES];           // Or self.working = YES;, same as above
BOOL working = [self isWorking]; // Or = self.working;, also same as above

10-08 02:19