苹果建议以这种方式声明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