我有一个只读BOOL属性.这里的主要命名模式是什么?
背景:对于普通的旧方法声明,接受的模式
- (BOOL)isEditable; - (void)setEditable:(BOOL)flag;
在@property世界中,通常表示为
@property(getter=isEditable) BOOL editable;
但是,有相反的例子.例如在CalStore/CalCalendar.h中
@property(readonly) BOOL isEditable;
(CalCalendar在这里是错误的,还是对于只读BOOL属性来说也是一个可接受的命名模式?)
我有一个管理视图的控制器,可能会也可能不会调整大小.该物业是只读的.
@property(readonly) BOOL viewIsResizable; @property(readonly) BOOL isViewResizable; @property(readonly, getter=isViewResizable) BOOL viewResizable;
哪种模式最自然或像Cocoa一样?
引自ADC
如果属性表示为形容词,则格式为:
- (void)setAdjective:(BOOL)flag; - (BOOL)isAdjective;例如:
- (void)setEditable:(BOOL)flag; - (BOOL)isEditable;如果属性表示为动词,则格式为:
- (void)setVerbObject:(BOOL)flag; - (BOOL)verbObject;例如:
- (void)setShowsAlpha:(BOOL)flag; - (BOOL)showsAlpha;动词应该是简单的现在时.
| K <
我不认为这真的很重要,因为国际志愿者组织将同时考察is
和
.
看看iPhone课程,我见过的最常见的模式是:
@property(nonatomic,getter = isHidden)BOOL隐藏;
这让你以这些方式访问该属性:
obj.hidden = YES; // (1) BOOL hidden = obj.hidden; // (2) BOOL hidden = [obj isHidden]; // (3)
但不是:
BOOL hidden = obj.isHidden; // (4)
CalStore不遵循该惯例.您将不得不使用第4行而不是第2行.