iOS編碼需要注意的幾點問題

躍然發表於2016-11-02
  1. 所有邏輯判斷需要新增註釋說明。
  2. 所有變數、常量需要新增註釋說明。
  3. 從網上拿到的資料最好先做非空轉換,將資料插入陣列或字典時做非空轉換。
  4. delegate 物件使用 weak,禁止使用 strong。
  5. 單一職責原則:一個類只能幹一個事情,一個方法最好也只幹一件事情。不允許一個方法既處理邏輯,又繪製UI。
  6. 健壯性

    是否考慮執行緒安全
    邊界處理是否完整
    邏輯是否健壯
    是否有記憶體洩漏
    有沒有迴圈引用
    有沒有野指標

  7. 碰到新增陰影時,注意效能。

  8. 按鈕獨佔事件要新增,防止多個按鈕同時點選的情況出現。
  9. 當一個介面有push和pop的時候,兩個操作相隔時間很短,一個動畫未結束,另外一個動畫已經開始,導致動畫衝突crash,應新增如下程式碼
    if (self.navigationController.topViewController != self){}
  10. 載入一次性大圖片並且不在tableview中使用時用imageWithContentsOfFile(如新版本引導頁,背景大圖片等不需要一直放在應用快取中的圖片)。小圖片或者在tableview中使用的圖片可以用imageNamed。
  11. 注意做好單元測試,保證在頁面返回時執行到dealloc方法
  12. 在做writeToFile讀寫操作時,記得加try catch或者執行緒鎖,防止多執行緒同時修改和寫入同一個檔案導致Crash
  13. 頁面退出時,要將定時器關閉,將通知關閉。
  14. 使用block不可以持有self,如果在block中有執行self方法或者屬性,必須先將self置為weak,在block內建為strong。
  15. 在控制器回退時,如果控制器中有NSTimer倒數計時,必須將倒數計時關閉
  16. 子檢視引用父檢視時,要使用weak,不允許使用strong而導致迴圈引用。

相關文章