Posted on

上課筆記(四) – Naming Convention、記憶體管理

Naming Convention

  1. 命名原則:
    1. 具解釋性
    2. 清楚
    3. 不會混淆
  2. 類別名稱:
    1. 第一個字大寫
    2. 前置namespace(在新增專案時會有Class Prefix,就是在設定這個)
    3. 駝峰式的寫法
  3. 變數名稱
    1. 變數類型不需特別表明,可以用名稱去讓人聯想型別,例:
      BOOL isEditable;
      NSString * accountName;
      NSMutableArray * mailBoxes;
      UIImage * previewPaneImage;
      NSDictionary * messageDict;
  4. 方法名稱:可以清楚表明意思
  5. 參數名稱:避免和ivar同名

 記憶體管理(IOS沒有gc)

  1. 配置記憶體:alloc;清除記憶體:dealloc
  2. zomble:不該用到卻用到(值為nil);memory leak:已沒辦法存取卻未把記憶體清掉
  3. 使用arc比較容易發生zomble,不用arc則容易發生memory leak。
  4. 若是有一段程式碼之中會用到大量的記憶體,則可以用@autoreleasepoll{…}包起來
    缺點:速度會慢一些
    優點:記憶體較好(在ios裡面,記憶體較重要)
  5. strong與weak的差別:變數的宣告值strong代表這個變數會增加retain的值,而weak則不會。
    weak比較像依賴的關係,當今天主要strong的變數被刪除了,weak裡的值也會變為空值。
    而strong則會增加retain的值,主要變數被刪除了,因為retain還是大於1,所以變數的記憶體並不會被釋放。(要小心Memory leak)