1.基础命名
1.1 清晰
-
命名应该清晰,明确,在做到这两点的基础上尽量简洁。
例如:
insert:at:应该替换成insertObject:atIndex: -
不要使用缩写,长点没有关系
例如:
setBkgdColor:应该替换成setBackgroundColor: -
避免歧义
1.2 统一、连贯性
- 与Cocoa的命名保持统一。
- 不同类中,相同作用的方法或者属性用相同的名字。
例如:NSView, NSCell, NSControl中的
- (NSInteger)tag
1.3 前缀
- 不同模块中使用不同的前缀,但是方法和结构体命名不要使用前缀。
2.方法命名
2.1 基本规则
- 小写字母开头
- 代表动作的以动词开头,不要用‘do,dose’这样的词
例如:- (void)selectTabViewItem:(NSTabViewItem *)tabViewItem; - 获取属性的方法,无需在命名中出现‘get’
例如:- (NSSize)cellSize; - 使用关键词描述参数,并紧挨在参数之前
例如:- (id)taggedView:(int)aTag;替换成- (id)viewWithTag:(NSInteger)aTag; - 继承方法时,将新增的参数往后添加
例如:NSView, UIView.中 - (id)initWithFrame:(CGRect)frameRect; NSMatrix, a subclass of NSView 中 - (id)initWithFrame:(NSRect)frameRect mode:(int)aMode cellClass:(Class)factoryId numberOfRows:(int)rowsHigh numberOfColumns:(int)colsWide; - 多个参数间不要用‘and’连接
2.1 setter、getter 方法
- 名词
- (NSString *)title;
- (void)setTitle:(NSString *)aTitle;
- 形容词
- (BOOL)isEditable;
- (void)setEditable:(BOOL)flag;
- 动词
- (BOOL)showsAlpha;
- (void)setShowsAlpha:(BOOL)flag;
- 动词在前,名词在后
- (BOOL)glyphInfoAccepted;
替换成
- (BOOL)acceptsGlyphInfo;
2.2 delegate 方法
- 以发送消息的类名开头
2.3私有方法
- 基本与公有方法规则一致
- 如果继承Cocoa框架类(例如NSView或UIView),并且要绝对确保私有方法的名称与父类中的名称不同,则可以在私有方法中添加自己的前缀,如MT_addObject: