您的位置:首页 > 其它

第三章 Managing Mem With Arc 笔记

2016-04-18 19:39 253 查看
一,栈

       当一个方法运行时,会在栈中分配内存,栈的管理符合先入后出的原则;

二,堆

      对象的存储区域

三,ARC

        ios的垃圾内存回收器

四,Object   Ownership

         函数的局部变量会增加引用计数;

         对象的成员变量会增加引用计数

五,释放引用计数

        让对象失去引用;

        比如对象的引用指向另外一个对象或者引用指向nil;

        引用本身被释放,或者对象从数组中移除;

六,弱引用和强引用

        弱引用被用于解决强引用环的问题;  即是2个或2个以上对象互相引用对方,导致对象无法被释放内存

        弱引用不会增加引用计数,在对象释放时,弱引用值会被设为nil;

        

        ios提供了工具检测是否出现强引用环

七,property

        创建对象的实例变量的便利方法; 

        创建属性后,编译器会自动创建带_的实例变量,并自动创建set和get方法

八,Property attributes

       1,线程安全

              nonatomic or atomic

       2,Read/write attribute

       3,内存管理相关

             copy,拷贝了一份内存,原有的对象不会增加或者减少引用计数

             unsafe_unretained,一般用于基本数据类型

九,自定义set/get方法

         当set、get方法都被覆盖后,加_的实例变量也不会被创建

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: