cocoa中的內存管理機制--引用計數
Cocoa中提供了一個機制來實現上面的邏輯模型,它被稱為“引用計數”或者“保留計數”。引用計數的數值表示對象有幾個“人”在使用它
- 每一個對象都擁有一個引用計數(retain count)當對象被創建的時候,引用計數的值為1當發送retain消息時,該對象的引用計數加1,該對象的引用計數為2當向這個對象發送release消息時,該對象的引用計數減1當一個對象的引用計數為0時,系統自動調用dealloc方法,銷毀該對象
下面通過一個實例,來看下怎麼樣進行增加,減少,引用計數
1:創建Person類,並且覆蓋dealloc方法:
#import "Person.h" @implementation Person -(void)dealloc{ NSLog(@"person dead"); [super dealloc]; } @end
2:在main.m方法中進行模擬引用計數
#import#import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *tom=[[Person alloc]init]; NSLog(@"tom : %ld",[tom retainCount]); [tom retain]; NSLog(@"tom : %ld",[tom retainCount]); [tom release]; NSLog(@"tom : %ld",[tom retainCount]); [tom release]; } return 0; }