使用BOOL属性
苹果build议这样声明一个BOOL属性:
@property (nonatomic, assign, getter=isWorking) BOOL working;  正如我使用Objective-C 2.0属性和点符号,我使用self.working访问此属性。 我知道我也可以使用[self isWorking] – 但我不需要。 
所以,因为我到处都使用点符号,为什么我应该定义一个额外的属性? 简单地写就可以了吗?
 @property (nonatomic, assign) BOOL working; 
 或者我有什么好处,写getter=isWorking在我的情况(使用点符号)? 
谢谢!
 苹果只是build议为了风格的目的而声明一个isX 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 
苹果build议为文体的目的。如果你写这个代码:
 @property (nonatomic,assign) BOOL working; 
 那么你不能使用[object isWorking]。 
 它会显示一个错误。 但是如果你使用下面的代码的手段 
 @property (assign,getter=isWorking) BOOL working; 
所以你可以使用[object isWorking]。
 使用具有原始types的属性没有任何好处。  @property与分配NSObjects堆一起使用,如NSString* , NSNumber* , UIButton*等,因为内存pipe理访问器是免费创build的。 创buildBOOL ,该值始终分配在堆栈上,不需要任何特殊访问器来防止内存泄漏。  isWorking是expression布尔值状态的stream行方式。 
 在另一种面向对象的语言,你会做一个可变的private bool working; 和两个访问器: SetWorking for the setter和IsWorking为访问者。