iT邦幫忙

0

iOS APP 開發 OC 第十九天,司馬光砸缸流出來的不是水,是記憶體。OC記憶體洩漏。

  • 分享至 

  • xImage
  •  
tags: OC 30 day

記憶體洩漏

指的是一個對象的記憶體沒有被即時回收,在該回收的時候沒有被回收,一直駐留在內存當中,直到程序結束時才被回收。

單個對象的記憶體洩漏情況

  1. 有對象的創建,而沒有對應的release。
  2. retain 的次數與release的次數不匹配。
  3. 在不適當的時候,為指針賦值為nil。
  4. 在方法中未傳入的對象進行不適當的retain。

如何保證單個對象可以被回收?

  1. 有對象的創建,就必須要匹配一個release
  2. retain次數和release次數一定要匹配。
  3. 只有在指針稱為也指針的時候才賦值為nil。
  4. 在方法中不要隨意的為傳入的對象retain。

多個對象的記憶體管理

當屬性是一個OC對象的時候setter方法的寫法。
將傳進來的對象賦值給當前對象的屬性,代表傳入的對象多了一個人使用,所以我們應該先為這個傳入的對象發送一條retain消息,再賦值。當當前對象銷毀時,代表屬性指向的對象少一個人使用。就應該在dealloc中release。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言