浅谈Objective-C编码规范

移动开发 iOS
本文主要介绍了Objective-C编码规范,让我们学习在编程过程中编码规范的应用,本文又详细的介绍,先来看本文内容。

浅谈Objective-C编码规范是本文要介绍的内容,主要讲述了Objective-C编码规范编码规范的合理性,相信编程人员都知道是最需要注意的一个内容,不多说,先来看详细内容讲解。

格式化代码

指针“*”号的位置 ▪ 如:NSString *varName;

空格 VS tabs ▪ 只允许使用空格,将编辑器设置为1个TAB = 2个字符缩进

每行的长度

每行最多不得超过100个字符

以15寸Macbook Pro的大小,每行100个字符时能***化地同时容下编辑器和iPhone模拟器

Google的80字符的标准有点少,这导致过于频繁的换行(Objectve-C的代码一般都很长)

通过 “Xcode => Preferences => TextEditing => 勾选Show Page Guide / 输入

100 => OK” 来设置提醒 ◦ 方法的声明和定义

在 - OR + 和返回值之间留1个空格,方法名和***个参数间不留空格。如:

  1. - (void)doSomethingWithString:(NSString *)theString {  
  2. ...  

当参数过长时,每个参数占用一行,以冒号对齐。如:

  1. - (void)doSomethingWith:(GTMFoo *)theFoo  
  2. }  
  3. ...  
  4. rect:(NSRect)theRect interval:(float)theInterval { 

如果方法名比参数名短,每个参数占用一行,至少缩进4个字符,且为垂直对齐(而非使用冒号 对齐)。如:

  1. - (void)short:(GTMFoo *)theFoo  
  2. }  
  3. longKeyword:(NSRect)theRect  
  4. evenLongerKeyword:(float)theInterval { ... 

方法的调用 ▪ 调用方法沿用声明方法的习惯。例外:如果给定源文件已经遵从某种习惯,继续遵从那种习惯。 ▪ 所有参数应在同一行中,或者每个参数占用一行且使用冒号对齐。如:

  1. [myObject doFooWith:arg1 name:arg2 error:arg3]; 

  1. [myObject doFooWith:arg1 name:arg2  
  2. error:arg3]; 

和方法的声明一样,如果无法使用冒号对齐时,每个参数一行、缩进4个字符、垂直对其(而非 使用冒号对齐)。如:

  1. [myObj short:arg1  
  2. longKeyword:arg2  
  3. evenLongerKeyword:arg3]; 

 @public 和 @private ▪ @public 和 @private使用单独一行,且缩进1个字符

Protocals类型标示符、代理名称、尖括号间不留空格。该规则同样适用于:类声明、实例变量和方法声明。如:

  1. @interface MyProtocoledClass : NSObject<NSWindowDelegate> { @private  
  2. id<MyFancyDelegate> _delegate;  
  3. } - (void)setDelegate:(id<MyFancyDelegate>)aDelegate; @end 

如果类声明中包含多个protocal,每个protocal占用一行,缩进2个字符。如: @interface CustomViewController : ViewController<

  1. AbcDelegate,  
  2. DefDelegate >{  

命名 ◦ 类名

类名(及其category name 和 protocal name)的首字母大写,写使用首字母大写的形式 分割单词

在面向特定应用的代码中,类名应尽量避免使用前缀,每个类都使用相同的前缀影响可读性。

在面向多应用的代码中,推荐使用前缀。如:GTMSendMessage ◦ Category Name

待完善 ◦ 方法名

方法名的首字母小写,且使用首字母大写的形式分割单词。方法的参数使用相同的规则。 ▪ 方法名+参数应尽量读起来像一句话(如:)。

在这里查看苹果对方法命名的规范。 ▪ getter的方法名和变量名应相同。不允许使用“get”前缀。如:

  1. - (id) getDelegate; // 禁止  
  2. - (id)delegate; // 对头  

本规则仅针对Objective-C代码,C++代码使用C++的习惯

变量名 ▪ 变量名应使用容易意会的应用全称,且首字母小写,且使用首字母大写的形式分割单词 ▪ 成员变量使用“_”作为前缀(如:“NSString *_varName;”。

虽然这与苹果的标准(使用“_”作为后缀)相冲突,但基于以下原因,仍使用“_”作为前缀。 ▪ 使用“_”作为前缀,更容易在有代码自动补全功能的IDE中区分“属性

(self.userInfo)”和“成员变量(_userInfo)” ▪ 常量(#define, enums, const等)使用小写“k”作为前缀,首字母大写来分割单词。如:

  1. kInvalidHandle 

注释 ◦ 待完善

Cocoa 和 Objective-C特有的规则 ◦ 成员变量使用@private。如:

  1. @interface MyClass : NSObject { @private  
  2. id _myInstanceVariable;  
  3. } // public accessors, setter takes ownership - (id)myInstanceVariable; - (void)setMyInstanceVariable:(id)theVar; @end  
  4.  Indentify Designated Initializer ▪ 待完善  
  5.  Override Desingated Initializer 

小结:浅谈Objective-C编码规范的内容介绍完了,希望本文对你有所帮助。更多关于Objective-C的内容,请参考编辑推荐。

责任编辑:zhaolei 来源: 互联网
相关推荐

2010-09-01 09:19:33

Objective-CiPhone开发iPhone

2011-08-03 16:55:05

Objective-C 代理

2011-08-02 13:16:36

Objective-C 语法 函数

2011-08-04 11:15:46

Objective-C 构造函数 构造方法

2011-08-03 15:51:48

Objective-C 协议 委托

2014-05-21 14:03:57

Objective-C代码规范Code Style

2011-07-28 18:11:18

Objective-C Cocoa 编程

2013-03-27 12:54:00

iOS开发Objective-C

2011-05-11 15:58:34

Objective-C

2011-05-11 11:20:26

Objective-C

2013-06-20 10:40:32

Objective-C实现截图

2011-08-10 18:07:29

Objective-C反射

2014-06-25 14:02:59

Objective-CKVO

2014-04-30 10:16:04

Objective-CiOS语法

2011-08-17 10:58:59

Objective-C构造函数

2011-07-29 16:16:30

Objective-c block

2012-03-07 13:43:59

Objective-C

2011-07-08 13:49:46

Objective-C UUID

2012-06-15 09:47:48

Objective-CCategory

2011-08-04 14:58:37

Objective-C Cocoa NSString
点赞
收藏

51CTO技术栈公众号