您好,登錄后才能下訂單哦!
cocoa中的內(nèi)存管理機制--引用計數(shù)
Cocoa中提供了一個機制來實現(xiàn)上面的邏輯模型,它被稱為“引用計數(shù)”或者“保留計數(shù)”。引用計數(shù)的數(shù)值表示對象有幾個“人”在使用它
- 每一個對象都擁有一個引用計數(shù)(retain count)
- 當(dāng)對象被創(chuàng)建的時候,引用計數(shù)的值為1
- 當(dāng)發(fā)送retain消息時,該對象的引用計數(shù)加1,該對象的引用計數(shù)為2
- 當(dāng)向這個對象發(fā)送release消息時,該對象的引用計數(shù)減1
- 當(dāng)一個對象的引用計數(shù)為0時,系統(tǒng)自動調(diào)用dealloc方法,銷毀該對象
下面通過一個實例,來看下怎么樣進行增加,減少,引用計數(shù)
1:創(chuàng)建Person類,并且覆蓋dealloc方法:
#import "Person.h" @implementation Person -(void)dealloc{ NSLog(@"person dead"); [super dealloc]; } @end
2:在main.m方法中進行模擬引用計數(shù)
#import <Foundation/Foundation.h> #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; }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。