objective-c - 使用 BOOL 属性

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/

相关文章:

objective-c - Info.plist 上传错误中的 CFBundleVersion

ios - 如何在 UIView 中加载 xib 文件

iphone - Objective-C 拆分()?

objective-c - 如何计算两个日期之间的差异?

objective-c - 在 Objective-C 类中导入 Swift 协议(protocol

objective-c - 如何在 Objective-C 中创建和使用队列?

objective-c - 如何增加 NSNumber

ios - NSAttributedString 添加文本对齐

iphone - UILabel 不会自动缩小文本以适应标签大小

objective-c - 如何为多个子类使用单个 Storyboard uiviewcontrol