在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,表示使用這個這個物件 ...