码迷,mamicode.com
首页 > 其他好文 > 详细

objc block参数上的__autoreleasing怎么理解

时间:2015-10-03 00:55:59      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

objc block参数上的__autoreleasing怎么理解

看到这样的block的声明

- (void)XXXXXXX:(NSError * __autoreleasing *)error
{
   ...
   *error = ......
   ...
}

         于是将__autoreleasing去掉,编译和运行没有任何问题。于是就好奇了,这里到底有什么意义。查找了一下资料,大概的意思是:

       首先需要让编译器知道这个参数是什么样的类型,比如strong还是weak这样编译器才知道如何操作引用计数器。如果删除__autoreleasing编译器则会进行推断。如果明确告知编译器如何做,肯定是有利无弊的。这里告诉编译器这个传入参数是引用变量,并且这个参数是__autoreleasing的。因为本来我们传入的参数确实是autoreleasing的所以这里没有任何问题。

 

objc block参数上的__autoreleasing怎么理解

标签:

原文地址:http://www.cnblogs.com/xiaobajiu/p/4852921.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!