Objective-C开发编码规范
針對自己的編碼檢查問題,改正為以下編碼規(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开发编码规范的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多播程序设计(基于UDP协议)
- 下一篇: Oracle日期函数和循环总结