2017-02-07 29 views
1

考慮從下面的語句「大書呆子牧場:Objective-C編程」 - 第21章:對象的實例變量和屬性:引用計數與所有權計數相同嗎?

當一個對象都有一個對象實例變量,用指針的目的是說擁有指向的對象。

現在考慮以下情形:

#import <Foundation/Foundation.h> 

int main(int arc, const char * argv[]) 
{ 
    @autoreleasepool { 
     NSString *message = @"Hello, world!"; 
    } 
    return 0; 
} 

這裏,消息對象具有一個(1)參考。但是......它是否有任何擁有者?

如果我們嚴格堅持引用的定義,也沒有對象的指針引用此的NSString。這是否意味着消息有一(1)個引用,但沒有(0)個所有者?

而且,如果是這種情況,在決定是否取消分配對象時,ARC會考慮什麼?引用計數或所有權計數?

+0

您的代碼示例沒有用,因爲沒有涉及有意義的引用計數,所有權或取消分配。字符串文字具有靜態生命週期。它們從過程開始到結束都存在。 –

回答

1

引用計數只是對象維護的一個數字。

所有權是一種政策,幾乎是一種哲學。這是一種思考方式,試圖確保你連貫地介入對象的引用計數。

+1

請參閱我的書:http://www.apeth.com/iOSBook/ch12.html#_memory_management – matt