Objective-C ARC:传递一个对象作为参数

时间:2014-09-03 00:46:19

标签: ios objective-c cocoa-touch automatic-ref-counting

假设有方法:

     - (void)doSomething:(id)thing
     {
          uintptr_t retainCount =  _objc_rootRetainCount(thing);
          //do some thing
     }

编译器是否会保留传递对象并不十分清楚。

我在xcode5中测试,似乎编译器会在这种情况下保留传递对象,与(id __strong)相同。但是当我使用(id __weak)时它也会保留它,这很奇怪。如果我使用__autoreleasing__unsafe_unretained,则不保留传递对象,但在使用{{1}时应该保留它}。

与使用局部变量或实例变量使用这些所有权限定符完全不同,预期的行为和原因是什么。我无法从Apple的文档中找到任何相关信息。

我使用以下方法进行测试:

__autoreleasing

我在方法中使用它,然后调用方法。

0 个答案:

没有答案