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

__strong 修饰符

时间:2014-11-29 16:04:33      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:__strong

__strong 修饰符
__strong 是id类型和所有对象类型默认的所有权修饰符

__strong 表示对对象的强引用,在ARC中持有强引用变量在超出其作用域或强引用失效(如被置为nil),则引用对象被自动释放

      id __strong obj1=[[NSObject allocinit]; /* create object A */

        /*

         * obj1持有对对象A的强引用

         */

        id __strong obj2=[[NSObject allocinit]; /* create object B*/

        /*

         * obj2持有对对象B的强引用

         */

        id __strong obj3=nil;

        /*

         *obj3不持有任何对象

         */

        obj1=obj2;

        /*

         * obj1持有对对象B

         * 对象A没有持有者,因此A释放

         */

        obj3=obj1;

        /*

         * obj1,ojb2,obj3共同持有对象B

         */

        obj1=nil;

        /*

         * ojb2,obj3共同持有对象B

         */

        obj2=nil;

        /*

         * obj3共同持有对象B

         */

        obj3=nil;

        /*

         * 对象B没有持有者,故释放

         */

       总结:

        自己生成的对象,自己持有

          非自己生成的对象,自己也能持有

         不再需要自己持有的对象时释放

         



__strong 修饰符

标签:__strong

原文地址:http://blog.csdn.net/richard_rufeng/article/details/41550627

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