Objective C開發編碼規範

2021-09-11 13:21:33 字數 1637 閱讀 1700

ps:看樣子 這裡是很久前在其他地方搞的... ##點語法的使用:不建議使用點語法呼叫方法,只用來訪問屬性。這樣做是為了防止**可讀性問題。 例:(正確)使用點語法訪問屬性

nsstring *oldname = object.name;

object.name = @"cai";

複製**

(錯誤)不要使用點語法呼叫方法

nsarray *array = @[@"data"];

nsuinteger number = array.count;

複製**

##nil檢查 因為在objective-c中向nil傳送命令是不會丟擲異常或者導致崩潰的,只是完全的「什麼都不幹」,所以,只在程式中使用nil來做邏輯上的檢查。另外,不要使用諸如nil == object 或者 object == nil的形式來判斷

例:

//正確,直接判斷

if (!objc)

複製**

//錯誤,不用使用nil == objc的形式

if (nil == objc)

複製**

##建議使用語法糖(好像也叫快速建立) 使用語法糖能使**更簡潔 例:

nsnumber *test = @66;

複製**

#bool的使用 bool在objective-c中被定義為signed char型別,這意味著乙個bool型別的變數不僅僅可以表示yes(1)和no(0)兩個值,所以永遠不要將bool型別變數直接和yes比較:

//錯誤,無法確定great的值是否是yes(1),不要將bool值直接與yes比較

bool great = [foo isgreat];

if (great == yes)

//…be great!

複製**

//正確

bool great = [foo isgreat];

if (great)

//… be great!

複製**

同樣地,也不要將其它型別的值作為bool來返回,這種情況下,bool變數只會取值的最後乙個位元組來賦值,這樣很可能會取到0(no)。但是,一些邏輯操作符比如&& || !的返回是可以直接賦給bool的:

//錯誤,不要將其它型別轉化為bool返回

- (bool)isbold

複製**

- (bool)isvalid 

複製**

//正確

- (bool)isbold

複製**

//正確,邏輯操作符可以直接轉化為bool

- (bool)isvalid

複製**

- (bool)isenabled 

複製**

不要使用new方法:      儘管很多時候能用new代替alloc/init方法,但這可能會導致除錯記憶體時,出現不可預料的問題。cocoa的規範就是使用alloc init方法,使用new會讓一些讀者困惑。

Objective C 型別編碼

在開發的時候我們會遇到後跟objctype const char types的方法。如 nsvalue valuewithbytes const void value objctype const char type nullable nsmethodsignature signaturewitho...

指定編碼格式copyc Python編碼規範彙總

文章目錄 編碼格式宣告 縮排 引號 空行 匯入模組 命名規範 通常,編碼格式宣告是必需的。如果 python 原始碼檔案沒有宣告編碼格式,python 直譯器會預設使用 ascii 編碼,一旦原始碼檔案包含非ascii編碼的字元,python 直譯器就會報錯。以 utf 8 為例,以下兩種編碼格式宣...

Objective C之KVC 鍵值編碼

ios中key value coding kvc 俗稱鍵值編碼,是乙個非正式的協議,它提供一種機制來間接訪問物件的屬性。直接訪問物件是通過呼叫訪問器的方法實現,而kvc不需要呼叫訪問器的設定和獲取方法,可以直接訪問物件的屬性。kvc的操作方法由nskeyvaluecoding協議提供,而nsobje...