Object C記憶體管理中的黃金法則

2021-08-27 06:09:50 字數 1203 閱讀 4217

在object-c中,記憶體的管理是通過retain和release來對物件的計數器進行加1或者減1來進行管理,當使用乙個物件

的時候需要進行對物件的計數器加1,使用完成後要減1進行釋放,當計數器等於0的時候物件進行銷毀。記憶體管理的黃

金法則就是,當你對乙個物件使用retain的時候,一定要進行relase釋放。下面我們使用乙個例子來說明這個問題,這個

例子是講遛狗原理,乙個人遛狗的時候需要講自己的繩子套在狗的脖子上面,其他人想遛狗的時候也得把繩子套到狗的

脖子上面,然後如果不想遛狗了就需要把自己的繩子從狗的身上拿掉,也就是減1,當沒有人遛狗的時候,這個狗就進

行銷毀。

首先看狗這個類

#import @inte***ce dog : nsobject

@property int id;

@end

#import "dog.h"

@implementation dog

@synthesize id = _id;

- (void) dealloc

@end

然後是人這個類

#import #import "dog.h"

@inte***ce person : nsobject

- (void) setdog: (dog *)adog;

- (dog*) dog;

@end

#import "person.h"

@implementation person

- (void) dealloc

- (void) setdog: (dog *)adog

}- (dog*) dog

@end

最後是main函式使用

#import #import "dog.h"

#import "person.h"

int main(int argc, const char * argv)

return 0;

}

從這裡可以看出對於這個記憶體的分配與釋放是如何遵循的,估計以後寫**的時候很多情況下需要畫乙個圖或者好好

想象才能下筆,否則的話很容易出現記憶體洩露這種事情的發生。

Object C中管理記憶體

object c之中採用一種保留記錄的方式記錄我們所建立的所有的物件,並且,當該計數減少為0的時候,object c自動收回分配給乙個物件的記憶體。text text1 text alloc init text text2 text alloc init 每乙個物件的計數都為1,我們可以通過reta...

Object C 中的記憶體管理

當你呼叫alloc init的時候,你得到乙個引用計數是1的物件。當你用完這個物件之後,你要對它呼叫release訊息,使其引用計數為0,這樣它的記憶體才會被釋放掉。當你呼叫乙個方法,它不是以init或者copy開頭的,這時,返回給你的物件是autorelease的,它是一種在將來某個時刻會自動被釋...

Object c記憶體管理

記憶體管理 物件的生命週期包括以下幾個時期 物件初始化 物件接收訊息和執行操作 物件被釋放 判斷乙個物件是否結束,用到引用計數器 引用計數器的基本概念 1 每個人物件有乙個整數值,這個整數值與物件本身關聯,稱為引用計數器 2 當某些地方需要使用這個物件時,可以將引用計數器加1,表示使用這個這個物件 ...