溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【Objective-C】OC中引用計數(shù)和對象所有權(quán)的基本概念與用法

發(fā)布時間:2020-07-06 20:16:17 來源:網(wǎng)絡(luò) 閱讀:273 作者:jiangqq900826 欄目:移動開發(fā)

cocoa中的內(nèi)存管理機制--引用計數(shù)

【Objective-C】OC中引用計數(shù)和對象所有權(quán)的基本概念與用法

Cocoa中提供了一個機制來實現(xiàn)上面的邏輯模型,它被稱為“引用計數(shù)”或者“保留計數(shù)”。引用計數(shù)的數(shù)值表示對象有幾個“人”在使用它

  1. 每一個對象都擁有一個引用計數(shù)(retain count)
  2. 當(dāng)對象被創(chuàng)建的時候,引用計數(shù)的值為1
  3. 當(dāng)發(fā)送retain消息時,該對象的引用計數(shù)加1,該對象的引用計數(shù)為2
  4. 當(dāng)向這個對象發(fā)送release消息時,該對象的引用計數(shù)減1
  5. 當(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; }
【Objective-C】OC中引用計數(shù)和對象所有權(quán)的基本概念與用法


向AI問一下細節(jié)

免責(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)容。

AI