tags: OC 30 day
記憶體洩漏
指的是一個對象的記憶體沒有被即時回收,在該回收的時候沒有被回收,一直駐留在內存當中,直到程序結束時才被回收。
單個對象的記憶體洩漏情況
- 有對象的創建,而沒有對應的release。
- retain 的次數與release的次數不匹配。
- 在不適當的時候,為指針賦值為nil。
- 在方法中未傳入的對象進行不適當的retain。
如何保證單個對象可以被回收?
- 有對象的創建,就必須要匹配一個release
- retain次數和release次數一定要匹配。
- 只有在指針稱為也指針的時候才賦值為nil。
- 在方法中不要隨意的為傳入的對象retain。
多個對象的記憶體管理
當屬性是一個OC對象的時候setter方法的寫法。
將傳進來的對象賦值給當前對象的屬性,代表傳入的對象多了一個人使用,所以我們應該先為這個傳入的對象發送一條retain消息,再賦值。當當前對象銷毀時,代表屬性指向的對象少一個人使用。就應該在dealloc中release。