OC 第二次检查命名规范思考与学习

微笑、不失礼 提交于 2019-12-09 16:43:17

紧接着上篇,每次看也不要求全部都会,哪怕每次学到一个技术点也算是赚了:

任务:对自己项目的方法命名进行优化。

这篇主题:Naming Methods (命名方法)

第一:

******对于表示对象执行的操作的方法,以_动词_开头名称: ******

  • (void)selectTabViewItem:(NSTabViewItem *)tabViewItem

第二:

******不要使用Do或does作为名字的一部分,因为这些助动词很少增加意思。另外,不要在动词前使用副词或形容词。 ******

第三:

如果方法返回接收者的属性,则以该属性命名方法。除非间接地返回一个或多个值,否则没有必要使用“get”。

- (NSSize)cellSize;

Right.

- (NSSize)calcCellSize;

Wrong.

- (NSSize)getCellSize;

Wrong.

第四,在所有参数之前使用关键字:

- (void)sendAction:(SEL)aSelector toObject:(id)anObject forAllCells:(BOOL)flag;

Right.

- (void)sendAction:(SEL)aSelector :(id)anObject :(BOOL)flag;

Wrong.

第五,在论证之前造一个词来描述这个论证:

- (id)viewWithTag:(NSInteger)aTag;

Right.

- (id)taggedView:(int)aTag;

Wrong.

第六:在创建比继承的方法更具体的方法时,将新关键字添加到现有方法的末尾:

  • (id)initWithFrame:(CGRect)frameRect; NSView, UIView.
  • (id)initWithFrame:(NSRect)frameRect mode:(int)aMode cellClass:(Class)factoryId numberOfRows:(int)rowsHigh numberOfColumns:(int)colsWide; NSMatrix, a subclass of NSView

 

第七不要使用“和”来链接属于接收者属性的关键字。

 

- (int)runModalForDirectory:(NSString *)path file:(NSString *) name types:(NSArray *)fileTypes;

Right.

- (int)runModalForDirectory:(NSString *)path andFile:(NSString *)name andTypes:(NSArray *)fileTypes;

Wrong.

 

第八:虽然“and”在本例中可能听起来不错,但它会在创建包含越来越多关键字的方法时造成问题。
如果方法描述了两个单独的操作,那么使用“and”将它们链接起来。

- (BOOL)openFile:(NSString *)fullPath withApplication:(NSString *)appName andDeactivate:(BOOL)flag;

NSWorkspace.

 

第二部分访问器方法:

访问方法是那些设置和返回对象属性值的方法。它们有特定的推荐形式,具体取决于属性的表达方式:

第一:如果属性表示为名词,则格式为

- (type)noun;

- (void)setNoun:(type)aNoun;

例子:

- (NSString *)title;
- (void)setTitle:(NSString *)aTitle;

 

第二:如果属性用形容词表示,则格式为

 

- (BOOL)isAdjective;

- (void)setAdjective:(BOOL)flag;

例子:

- (BOOL)isEditable;
- (void)setEditable:(BOOL)flag;

(目前我自己看这个set 和 get方法 ,名词不用加is,形容词的话 ,获取的时候要有个is)。

 

如果属性表示为动词,则格式为:

- (BOOL)verbObject;

- (void)setVerbObject:(BOOL)flag;

例子:

- (BOOL)showsAlpha;
- (void)setShowsAlpha:(BOOL)flag;

动词应该是一般现在时。

 

第三:不要用分词把动词变成形容词(分词:就是具有动词形容词二者特征的词,尤指以-ing或-ed,-d,-t,-en或-n结尾的英语动词性形容词,具有形容词功能,同时又表现各种动词性特点,如时态语态、带状语性修饰语的性能及带宾词的性能。分词分为现在分词过去分词两种,是一种非谓语动词形式。现在分词和过去分词主要差别在于:现在分词表示“主动和进行”,过去分词表示“被动和完成”(不及物动词的过去分词不表示被动,只表示完成)。分词可以有自己的状语、宾语逻辑主语等。)

 

- (void)setAcceptsGlyphInfo:(BOOL)flag;

Right.

- (BOOL)acceptsGlyphInfo;

Right.

- (void)setGlyphInfoAccepted:(BOOL)flag;

Wrong.

- (BOOL)glyphInfoAccepted;

Wrong.

 

未完待续...

 

 

 

https://github.com/QianKaiLu/Objective-C-Coding-Guidelines-In-Chinese

这里有别人已经整理好的,可以借鉴下,但是最重要的还是自己去总结去做任务去刻意的练习,养成好的命名习惯。

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!