当前位置:  开发笔记 > 编程语言 > 正文

BOOL Obj-C 2属性的命名约定?

如何解决《BOOLObj-C2属性的命名约定?》经验,为你挑选了2个好方法。

我有一个只读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一样?



1> kent..:

引自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 <



2> Martin Gordo..:

我不认为这真的很重要,因为国际志愿者组织将同时考察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行.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有