美文网首页
内存管理

内存管理

作者: G_M | 来源:发表于2016-07-08 20:53 被阅读13次

    1. 引用计数器:用来保存当前对象有几个东西在使用它(数字)

    2. 引用计数器的作用:用来判断对象是否应该回收内存空间(如果对象不等于nil,当引用计数器为0,此时要挥手对象的内存空间)

    3. 引用计数器的操作: retain  使用引用计数器+1

    release  使得引用计数器-1

    retain count  得到引用计数器的值

    4. 如果一个被释放的时候,会“临终遗言”(会调用该对象的dealloc方法)

    注意:

    1)dealloc方法是NSObject的,一般我们要重写dealloc方法

    2)在dealloc方法的内部,要调用[super dealloc];

    5.内存管理:对象如果不在使用了,就应该回收他的空间,防止造成内存泄漏

    6.内存管理的范围: 所有的继承了NSObject的对象的内存管理,基本数据类型的数据内存不需要我们进行管理

    7.内存管理的原则:

    如果对象有人使用,就不应该回收

    如果你想使用这个对象,应该让这个对象 retain一次

    如果你不想使用这个对象了,应该让这个对象relase一次

    谁创建 谁release

    谁retain 谁release

                              ARC

    1.指针的分类:

    1)默认情况下,所有的指针都是强指针,关键字strong

    2)弱指针: __weak关键字修饰的指针

    2. 什么是ARC

    自动引用计数,当ARC开启式,编译器将自动在代码合适的地方插入retain release 和 autorelease

    ARC与其他语言的”垃圾回收”机制不同,ARC是编译器的特性,”垃圾回收”运行时的特性

    3. ARC的判断准则:  只要没有强指针指向对象,对象会被释放

    4.__strong 是一个修饰符,修饰这个指针是一个强指针  __weak修饰这个指针是弱指针

    @property的参数:  strong相当于原来的retain(适用于OC对象类型),成员变量是强指针

    weak: 相当于原来的assign,(适用于OC对象类型),成员变量是弱指针

    assign:适用于非OC对象类型(基础类型)

    5. ARC使用注意事项:

    1)ARC中,只要弱指针指向的对象不再了,就直接把弱指针做清空(赋值nil)操作

    2)__weak Person *p =[(Perspn alooc)init];这句话不合理,因为刚创建出来就释放了,因为是弱指针

    相关文章

      网友评论

          本文标题: 内存管理

          本文链接:https://www.haomeiwen.com/subject/aijrjttx.html