?1.基礎(chǔ)命名
1.1 清晰
- 命名應(yīng)該清晰旁蔼,明確跟衅,在做到這兩點(diǎn)的基礎(chǔ)上盡量簡潔孵睬。
? ? 例如:
? ? insert:at:
? ? 應(yīng)該替換成
? ? `insertObject:atIndex:`
- 不要使用縮寫,長點(diǎn)沒有關(guān)系
? ? 例如:
????setBkgdColor:
? ? 應(yīng)該替換成
? ? `setBackgroundColor:`
-? 避免歧義
1.2 統(tǒng)一伶跷、連貫性
- 與Cocoa的命名保持統(tǒng)一掰读。
- 不同類中,相同作用的方法或者屬性用相同的名字叭莫。
? ? 例如:NSView, NSCell, NSControl中的` - (NSInteger)tag`
?1.3 前綴
- 不同模塊中使用不同的前綴蹈集,但是方法和結(jié)構(gòu)體命名不要使用前綴。
?2.方法命名
2.1 基本規(guī)則
- 小寫字母開頭
- 代表動作的以動詞開頭雇初,不要用‘do,dose’這樣的詞?
? ? 例如:`- (void)selectTabViewItem:(NSTabViewItem *)tabViewItem拢肆;`
- 獲取屬性的方法,無需在命名中出現(xiàn)‘get’? ?
? ? 例如:`- (NSSize)cellSize;`
- 使用關(guān)鍵詞描述參數(shù)靖诗,并緊挨在參數(shù)之前? ?
? ? 例如:- (id)taggedView:(int)aTag; 替換成 `- (id)viewWithTag:(NSInteger)aTag;`
- 繼承方法時(shí)郭怪,將新增的參數(shù)往后添加? ?
例如:
?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;
- 多個(gè)參數(shù)間不要用‘a(chǎn)nd’連接
?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 方法
- 以發(fā)送消息的類名開頭
?2.3私有方法
- 基本與公有方法規(guī)則一致
- 如果繼承Cocoa框架類(例如NSView或UIView)鄙才,并且要絕對確保私有方法的名稱與父類中的名稱不同,則可以在私有方法中添加自己的前綴促绵,如MT_addObject: