自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺談Objective-C編碼規(guī)范

移動(dòng)開(kāi)發(fā) iOS
本文主要介紹了Objective-C編碼規(guī)范,讓我們學(xué)習(xí)在編程過(guò)程中編碼規(guī)范的應(yīng)用,本文又詳細(xì)的介紹,先來(lái)看本文內(nèi)容。

淺談Objective-C編碼規(guī)范是本文要介紹的內(nèi)容,主要講述了Objective-C編碼規(guī)范。編碼規(guī)范的合理性,相信編程人員都知道是最需要注意的一個(gè)內(nèi)容,不多說(shuō),先來(lái)看詳細(xì)內(nèi)容講解。

格式化代碼

指針“*”號(hào)的位置 ▪ 如:NSString *varName;

空格 VS tabs ▪ 只允許使用空格,將編輯器設(shè)置為1個(gè)TAB = 2個(gè)字符縮進(jìn)

每行的長(zhǎng)度

每行最多不得超過(guò)100個(gè)字符

以15寸Macbook Pro的大小,每行100個(gè)字符時(shí)能***化地同時(shí)容下編輯器和iPhone模擬器

Google的80字符的標(biāo)準(zhǔn)有點(diǎn)少,這導(dǎo)致過(guò)于頻繁的換行(Objectve-C的代碼一般都很長(zhǎng))

通過(guò) “Xcode => Preferences => TextEditing => 勾選Show Page Guide / 輸入

100 => OK” 來(lái)設(shè)置提醒 ◦ 方法的聲明和定義

在 - OR + 和返回值之間留1個(gè)空格,方法名和***個(gè)參數(shù)間不留空格。如:

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

當(dāng)參數(shù)過(guò)長(zhǎng)時(shí),每個(gè)參數(shù)占用一行,以冒號(hào)對(duì)齊。如:

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

如果方法名比參數(shù)名短,每個(gè)參數(shù)占用一行,至少縮進(jìn)4個(gè)字符,且為垂直對(duì)齊(而非使用冒號(hào) 對(duì)齊)。如:

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

方法的調(diào)用 ▪ 調(diào)用方法沿用聲明方法的習(xí)慣。例外:如果給定源文件已經(jīng)遵從某種習(xí)慣,繼續(xù)遵從那種習(xí)慣。 ▪ 所有參數(shù)應(yīng)在同一行中,或者每個(gè)參數(shù)占用一行且使用冒號(hào)對(duì)齊。如:

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

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

和方法的聲明一樣,如果無(wú)法使用冒號(hào)對(duì)齊時(shí),每個(gè)參數(shù)一行、縮進(jìn)4個(gè)字符、垂直對(duì)其(而非 使用冒號(hào)對(duì)齊)。如:

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

 @public 和 @private ▪ @public 和 @private使用單獨(dú)一行,且縮進(jìn)1個(gè)字符

Protocals類(lèi)型標(biāo)示符、代理名稱(chēng)、尖括號(hào)間不留空格。該規(guī)則同樣適用于:類(lèi)聲明、實(shí)例變量和方法聲明。如:

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

如果類(lèi)聲明中包含多個(gè)protocal,每個(gè)protocal占用一行,縮進(jìn)2個(gè)字符。如: @interface CustomViewController : ViewController<

  1. AbcDelegate,  
  2. DefDelegate >{  

命名 ◦ 類(lèi)名

類(lèi)名(及其category name 和 protocal name)的首字母大寫(xiě),寫(xiě)使用首字母大寫(xiě)的形式 分割單詞

在面向特定應(yīng)用的代碼中,類(lèi)名應(yīng)盡量避免使用前綴,每個(gè)類(lèi)都使用相同的前綴影響可讀性。

在面向多應(yīng)用的代碼中,推薦使用前綴。如:GTMSendMessage ◦ Category Name

待完善 ◦ 方法名

方法名的首字母小寫(xiě),且使用首字母大寫(xiě)的形式分割單詞。方法的參數(shù)使用相同的規(guī)則。 ▪ 方法名+參數(shù)應(yīng)盡量讀起來(lái)像一句話(如:)。

在這里查看蘋(píng)果對(duì)方法命名的規(guī)范。 ▪ getter的方法名和變量名應(yīng)相同。不允許使用“get”前綴。如:

  1. - (id) getDelegate; // 禁止  
  2. - (id)delegate; // 對(duì)頭  

本規(guī)則僅針對(duì)Objective-C代碼,C++代碼使用C++的習(xí)慣

變量名 ▪ 變量名應(yīng)使用容易意會(huì)的應(yīng)用全稱(chēng),且首字母小寫(xiě),且使用首字母大寫(xiě)的形式分割單詞 ▪ 成員變量使用“_”作為前綴(如:“NSString *_varName;”。

雖然這與蘋(píng)果的標(biāo)準(zhǔn)(使用“_”作為后綴)相沖突,但基于以下原因,仍使用“_”作為前綴。 ▪ 使用“_”作為前綴,更容易在有代碼自動(dòng)補(bǔ)全功能的IDE中區(qū)分“屬性

(self.userInfo)”和“成員變量(_userInfo)” ▪ 常量(#define, enums, const等)使用小寫(xiě)“k”作為前綴,首字母大寫(xiě)來(lái)分割單詞。如:

  1. kInvalidHandle 

注釋 ◦ 待完善

Cocoa 和 Objective-C特有的規(guī)則 ◦ 成員變量使用@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 

小結(jié):淺談Objective-C編碼規(guī)范的內(nèi)容介紹完了,希望本文對(duì)你有所幫助。更多關(guān)于Objective-C的內(nèi)容,請(qǐng)參考編輯推薦。

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-09-01 09:19:33

Objective-CiPhone開(kāi)發(fā)iPhone

2011-08-03 16:55:05

Objective-C 代理

2011-08-02 13:16:36

Objective-C 語(yǔ)法 函數(shù)

2011-08-04 11:15:46

Objective-C 構(gòu)造函數(shù) 構(gòu)造方法

2011-08-03 15:51:48

Objective-C 協(xié)議 委托

2014-05-21 14:03:57

Objective-C代碼規(guī)范Code Style

2011-07-28 18:11:18

Objective-C Cocoa 編程

2013-03-27 12:54:00

iOS開(kāi)發(fā)Objective-C

2011-05-11 11:20:26

Objective-C

2011-05-11 15:58:34

Objective-C

2013-06-20 10:40:32

Objective-C實(shí)現(xiàn)截圖

2011-08-10 18:07:29

Objective-C反射

2011-07-08 13:49:46

Objective-C UUID

2011-07-29 16:16:30

Objective-c block

2014-04-30 10:16:04

Objective-CiOS語(yǔ)法

2011-08-17 10:58:59

Objective-C構(gòu)造函數(shù)

2012-03-07 13:43:59

Objective-C

2014-06-25 14:02:59

Objective-CKVO

2012-06-15 09:47:48

Objective-CCategory

2011-08-04 14:58:37

Objective-C Cocoa NSString
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)