程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> [Objective-C]OC中引用計數和對象所有權的基本概念與用法

[Objective-C]OC中引用計數和對象所有權的基本概念與用法

編輯:關於C語言

cocoa中的內存管理機制--引用計數

\

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

 

  1. 每一個對象都擁有一個引用計數(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;
    }
    \

     


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved