八、C語言與Objective—C語言的關係條件是充分而非必要條件
九、高度警戒空指針和野指針的襲擊數組
- 一、空指針(NULL指針),是指沒有存儲任何內存地址的指針。野指針,是指向「垃圾內存」(不可用內存)的指針
- 二、利用野指針發消息是很危險的。
- 三、利用空指針發消息是沒有任何問題的。
十、在64位環境下儘量利用標記指針安全
- 一、利用標記(Tagged)指針,能夠在指針地址中保存或附加更多地信息。
- 二、利用標記(Tagged)指針處理NSNumber,直接能夠把實際的值保存到指針中,而無須再去訪問堆中的數據,可提升內存訪問速度和總體運算速度。
- 三、在32位和64位的環境下,isa指針會產生不一樣的變化。
十一、謹記兼容32位和64位環境下代碼編寫事項數據結構
- 一、不要將長整型數據賦予整型
- 二、利用用NSInteger來處理32位和64位之間的轉換
- 三、建立數據結構要注意固定大小和對其
十二、清楚常量字符串和通常字符串的區別優化
- 一、因爲編譯器的優化,相同內容的常量字符串的地址值是徹底相同的
- 二、若是使用常量字符串來初始化一個字符串,那麼這個字符串也將是相同的常量
- 三、對常量字符串永遠不要release
1三、在訪問集合時要優先考慮使用快速枚舉
1四、有序對象適宜存於數組,而無序對象適宜存於集指針
- 一、數組(NSArray)可維持持續性,故適宜存儲有序的對象,但每一項必須是Objective-C對象。集(Sets)不維持秩序,故適宜存儲無序對象。
- 二、同一數組(NSArray)能夠保存不一樣的對象,但不能存儲float、int、double等基本類型和nil,不然存儲基本類型都會被設置爲0,不能存儲nil是由於數組必須用nil來結尾。
- 三、快速枚舉是訪問數組(NSArray)中的對象的一種比較快的方法。
- 四、使用NSArray和NSDictionary類能夠直接將其內容寫入磁盤進行持久化。
1五、存在公共鍵時,字典是在對象之間傳遞信息的絕佳方式
1六、明智而審慎地使用BOOL類型對象
- 一、整型轉爲BOOL形,使用三元(Ternery)操做符,以保證返回YES或NO值
- 二、整形轉換爲BOOL型的時候要避免直接和YES作對比
- 三、BOOL值進行邏輯運算(&&, ||, !)不但有效,並且還能夠確保返回值安全的轉爲BOOL型,無須三元操做符