一、多用字面量語法**
1、字面量語法指的是直接使用@加上值對Foundation的常用的類進行初始化,例如NSString,NSArray,NSDictionary,NSNumber。
2、字面量語法的好處就是縮短源代碼的長度,增加可讀性與整潔度。
3、使用字面量創建數組或者字典對象的時候,比使用非字面量創建數組對象的好處就是在字面量創建數組或者對象時如果值為nil就會報出異常,而非字面量創建數組或者字典對象不會報異常,直到讀取數組或者字典中的值為nil的時候才會報異常。所以使用字面量語法更為安全。
二、多用類型常量,少用define預處理指令
1、聲明一個常量時我們經常會用到#define TIMEINTERVAL 1.0之類的預處理指令。但是使用這樣的預處理指令在引入頭文件之后,所有的TIMEINTERVAL都會被設置為1.0,且TIMEINTERVAL的類型并沒有明確說明。
2、解決方案:使用static const CGFloat kTimeInterval = 1.0;
這樣的語法對常量進行定義。這樣的好處是明確地指明了該常量的類型,增加了閱讀性。ps:開頭加上k表示常量,使用staic和const進行聲明的好處是當嘗試對常量進行改變的時候編譯器就會報錯提醒,添加staic的原因是為了防止當多個.m文件中聲明了命名一樣的常量時報錯,報錯的原因是使用const字段時編譯器會創建一個外部符號,如果存在兩個一樣的外部符號那么就會報錯,等同于創建了兩個一樣變量名的變量一樣。添加了static就不會創建外部符號,所以不存在一樣符號名的問題自然也不會編譯報錯。
3、若類型常量不需要公開,那么不應該添加在頭文件中,而是在實現文件即.m文件中進行聲明。
4、如果需要對類型常量進行公開那么在實現文件中的類型常量就要定義為CGFloat const kTimeInterval = 1.0;
而在頭文件中,需要使用extern關鍵字對類型常量進行聲明extern CGFloat const kTimeInterval;
。即相當于在頭文件中聲明,在實現文件中定義。
5、注意類型常量的命名,防止命名沖突導致數據對不上。一般使用類名作為前綴來區分。例如:UIImageViewTimeInterval