文档章节

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

T
 T型人才追梦者
发布于 2019/12/07 18:18
字数 965
阅读 9
收藏 0

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

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

这篇主题: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

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

 

© 著作权归作者所有

T
粉丝 0
博文 122
码字总数 88653
作品 0
东城
私信 提问
加载中

评论(0)

从 OC 到 Swift 的快速入门与专业实践

只会介绍与 OC 有明显区别的地方,不会介绍 OC 中没有的,比如元组。当前总结也只是蜻蜓点水而已,但是有 OC 的基础,看这些已经足够。 一、数据 Swift 是类型安全的语言: Swift 必须明确数...

CoderHG
2018/08/04
0
0
面向对象-类

代码编写 定义一个Car类,拥有2个属性:轮子数、时速,1个行为:跑 类名属性的命名规则:标示符的规则 类名的命名规范:有意义、驼峰标识、首字母大写 #import <Foundation/Foundation.h> //...

5vinsEnt
2016/04/15
19
0
OC之成员变量封装

#import<Foundation/Foundation.h> @interface Student : NSObject { // 成员变量尽量不要用@public // @public int age; //@public // 只读(readonly):只允许外界访问我的no,不允许外界......

feng_blog
2015/08/31
82
0
02 - Object-C 面向对象

面向对象基本术语 面向对象 Object Oriented,简称OO 面向对象编程 Object Oriented Programming,简称OOP 2. 类和对象 2.1、类的声明 类名属性的命名规则:有意义、驼峰标识、首字母大写(类...

口十耳
2015/12/22
86
0
iOS 灵活的 模块化/组件化 工具与规范 Lotusoot 解说

iOS 灵活的 模块化/组件化 工具与规范 Lotusoot 解说 Harries Blog™2017-12-134 阅读 IOS技术ACEAndroidAppcatCocoaPodsgitGitHub 开篇 上一篇《 href="https://link.jianshu.com/?t=http:/......

Harries Blog™
2017/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

0228 我的潘多拉

我的潘多拉 从一个故事说起。<br />从前,有个Java程序员非常喜欢写程序,喜欢研究源码,读英文文档。但是它在一家小公司里工作,公司的技术栈很陈旧。<br /> <br />单个系统代码中含有很多的...

李福春carter
今天
18
0
OSChina 周六乱弹 —— 屁会不会传染病毒

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《ハレハレヤ(朗朗晴天)》- 猫瑾 手机党少年们想听歌,请使劲儿戳(这里) @空格...

小小编辑
今天
63
1
两个值得注意的问题

对成员变量的操作只能放在方法中,方法可以对成员变量和方法体中自己定义的局部 变量进行操作.在定义类的成员变量时可以同时赋予初值,如 class A { int a=12; float b=12.56f; } 但是不可以这...

咔啡
今天
27
0
第三章 分布式服务框架的选择

1.大项目工程且多人维护的弊端 (1)项目团队协同成本高,业务响应越来越慢 (2)应用复杂度已超出人的认知负载(向杂乱的电线一样) (3)错误难于隔离(一个模块出错,整个系统挂掉) (4...

zxx901221
今天
68
0
eclipse 上传jar到远程仓库

使用maven的项目中,有时需要把本地的项目打成jar包上传到mevan仓库。 操作如下: 前提:pom文件中配置好远程库的地址,否则会报错 一、将maven 中的settings文件配置好用户名和密码,如下:...

文文1
昨天
63
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部