2017-02-07 26 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