日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Objective-C开发编码规范

發(fā)布時間:2025/3/13 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Objective-C开发编码规范 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

針對自己的編碼檢查問題,改正為以下編碼規(guī)范:

1.

協(xié)議( Protocols?)

在書寫協(xié)議的時候注意用 <> 括起來的協(xié)議和類型名之間是沒有空格的,比如 IPCConnectHandler(), 這個規(guī)則適用所有書寫協(xié)議的地方,包括函數(shù)聲明、類聲明、實例變量等等:

2.

閉包( Blocks?)

根據(jù) block 的長度,有不同的書寫規(guī)則:

  • 較短的 block 可以寫在一行內。

  • 如果分行顯示的話, block 的右括號 } 應該和調用 block 那行代碼的第一個非空字符對齊。

  • block 內的代碼采用?4?個空格?的縮進。

  • 如果 block 過于龐大,應該單獨聲明成一個變量來使用。

  • ^ 和 ( 之間, ^ 和 { 之間都沒有空格,參數(shù)列表的右括號 ) 和 { 之間有一個空格。

?

3.

字典

構造字典時,字典的 Key 和 Value 與中間的冒號 : 都要留有一個空格,多行書寫時,也可以將 Value 對齊:

//?正確,冒號?':'?前后留有一個空格 NSDictionary?*option1?=?@{ NSFontAttributeName?:?[NSFont?fontWithName:@"Helvetica-Bold"?size:12], NSForegroundColorAttributeName?:?fontColor }; 4. 命名問題 1> 命名應該盡可能的清晰和簡潔,但在 Objective-C 中,清晰比簡潔更重要。由于 Xcode 強大的自動補全功能,我們不必擔心名稱過長的問題。

不要使用單詞的簡寫,拼寫出完整的單詞:

2>一致性

整個工程的命名風格要保持一致性,最好和蘋果 SDK 的代碼保持統(tǒng)一。不同類中完成相似功能的方法應該叫一樣的名字,比如我們總是用 count 來返回集合的個數(shù),不能在 A 類中使用 count 而在 B 類中使用 getNumber 。

?

5. 實例變量

命名實例變量,在變量名前加上 _ 前綴(有些有歷史的代碼會將?_?放在后面?),其它和命名屬性一樣:

@implementation?MyClass?{ BOOL?_showsTitle; } 6.

命名常量( Constants?)

如果要定義一組相關的常量,盡量使用枚舉類型( enumerations ),枚舉類型的命名規(guī)則和函數(shù)的命名規(guī)則相同:

//?定義一個枚舉,注意帶有?`_`?的名稱是不會被使用的 typedef?enum?_NSMatrixMode?{ NSRadioModeMatrix?=?0, NSHighlightModeMatrix?=?1, NSListModeMatrix?=?2, NSTrackModeMatrix?=?3 }?NSMatrixMode; 7. 定義常量 使用 const 定義浮點型或者單個的整數(shù)型常量,如果要定義一組相關的整數(shù)常量,應該優(yōu)先使用枚舉。常量的命名規(guī)范和函數(shù)相同: const?float?NSLightGray; 8. 宏定義 不要使用 #define 宏來定義常量,如果是整型常量,盡量使用枚舉,浮點型常量,使用 const 定義。 #define 通常用來給編譯器決定是否編譯某塊代碼. 9.

命名通知( Notifications?)

通知常用于在模塊間傳遞消息,所以通知要盡可能地表示出發(fā)生的事件,通知的命名范式是:

[?觸發(fā)通知的類名?]?+?[Did?|?Will]?+?[?動作?]?+?Notification 10. 注釋 定義在頭文件里的接口方法、屬性必須要有注釋! // 注釋(注意空格問題) 11.

BOOL?的使用

BOOL 在 Objective-C 中被定義為 signed char 類型,這意味著一個 BOOL 類型的變量不僅僅可以表示 YES(1) 和 NO(0) 兩個值,所以永遠不要將 BOOL 類型變量直接和 YES 比較;

同樣的,也不要將其它類型的值作為 BOOL 來返回,這種情況下, BOOL 變量只會取值的最后一個字節(jié)來賦值,這樣很可能會取到 0 ( NO )。但是,一些邏輯操作符比如 &&,||,! 的返回是可以直接賦給 BOOL 的;

另外 BOOL 類型可以和 _Bool,bool 相互轉化,但是不能和 Boolean 轉化。 ?(啥意思,暫時還沒懂,知道的告訴我喲!!!)

?

12.

Delegate?要使用弱引用

一個類的 Delegate 對象通常還引用著類本身,這樣很容易造成引用循環(huán)的問題,所以類的 Delegate 屬性要設置為弱引用。

13.

代碼中注意大量的輸出語句,沒必要;

定義方法以空行隔開;

代碼中注意大量的空行,注意代碼的緊湊性;

注意封裝,代碼的硬編碼問題;

宏定義注意全部大寫,值用()括起來.

?

暫時總結以上幾點,也歡迎大神們指教!!

?

轉載于:https://www.cnblogs.com/pengsi/p/5549317.html

總結

以上是生活随笔為你收集整理的Objective-C开发编码规范的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。