Apple 建议以这种方式声明 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。是否自定义 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
https://stackoverflow.com/questions/4864239/