OC集合記憶體管理

2021-06-27 16:28:07 字數 823 閱讀 8106

/*集合記憶體管理 :陣列。字典*/

//1.物件加入集合物件中,retaincount + 1

//2.物件從集合物件中移除,retaincount - 1

//3.集合物件的retaincount改變,其中元素的retaincount不變

//4.集合被銷毀時,其中元素release一次

person *person = [[person alloc]init];

//person = 1

nslog(@"person = %lu",[person retaincount]);

nsarray *arrary = [[nsarray alloc]initwithobjects:person,nil];

//person =2 array = 1

nslog(@"person = %lu ,array = %lu",[person retaincount],[arrary retaincount]);

[arrary retain];

//person =2 array = 2

nslog(@"person = %lu ,array = %lu",[person retaincount],[arrary retaincount]);

[arrary release];

[arrary release];

//person =1 array = 1

nslog(@"person = %lu ,array = %lu",[person retaincount],[arrary retaincount]);

Oc 記憶體管理

1 對你自己擁有的物件負責,你只能釋放你擁有的物件 2 凡是你通過 retain alloc copy等手段獲得了所有者的物件,都必須在你不使用的時候來呼叫release autorelease等手段來釋放對他的所有權 3 在一定的 段內,對同乙個物件所作的copy alloc retain的操作次...

OC記憶體管理

1.記憶體管理原則 如果對乙個物件使用了alloc mutable copy retain,那麼你必須使用相應的release或者autorelease。2.管理範圍 任何繼承了nsobject 的物件,對其他基本資料型別 int char float double struct enum等 無效 ...

OC 記憶體管理

管理範圍 任何繼承nsobject的物件,對其他的基本資料型別無效。判斷物件要不要 的唯一依據就是計數器是否為0,若不為0則存在。所以對記憶體的管理就是對計數器的管理 1 retain 計數器 1,會返回物件本身 2 release 計數器 1 沒有返回值 3 retaincount 獲取當前的計數...