美文网首页
OC引用计数

OC引用计数

作者: 尽斩桃花三千 | 来源:发表于2017-03-25 21:42 被阅读12次

1.使用 alloc, new,copy,mutableCopy 生成的对象,自己生成并持有. 需要自己手动rretain和release

2.如array,mutableArray这样生成的对象,非自己生成并持有.源码如:

-(NSArray *)array{

NSArray *array = [NSArray alloc]init];

[array autoRelease];

return array;

}

对象调用autoRelease后,会注册到autoReleasepool中,当pool结束时,会自动调用release释放对象.

3.引用计数保存在对象的头部,可以使用retainCount取得, 当retainCount为0时,会调用dealloc废弃对象.

4.autoRelease的对象,并不会立即释放,而是在pool被废弃的时候释放.   autoReleasepool就像一个括号,对象就像一个局部变量,当超出作用域,对象就会被释放掉.  整个app的主程序就是在autoReleasepool中运行的.

5.如果嵌套生成autoReleasepool对象,理所当然的会使用内侧的对象.

所有权修饰符

1. __strong 指向并持有对象. 

2.__weak 指向但不持有对象

3.__unsaft__unretain 修饰的变量,不属于编译器的内存管理对象.  __unsaft__unretain修饰的对象,和__weak修饰的对象类似,并不会持有对象.    使用__unsafe_unretain

4.ARC有效是,不能直接使用 autorelease   和NSAtutoReleasePool对象, 应该用 @autoreleasepool{........};  在@autoreleasepool{}的范围内,使用__autorelease 修饰对象,等价于在MRC情况下,调用 autorelease 方法

属性声明                                        所有权修饰符

assign,unsaft_unraetained              __unsafe__unretain

copy ,retain ,string                           __strong

weak                                                     __weak

相关文章

  • 内存管理-MRC与ARC

    引用计数 在iOS中,使用引用计数来管理OC对象的内存1、一个新创建的OC对象引用计数默认是1,当引用计数减为0,...

  • 【iOS-内存管理】

    在iOS使用引用计数来管理OC对象的内存 一个新创建的OC对象的引用计数是1,当引用计数减为0,OC对象就会销毁,...

  • 内存管理

    OC对象的内存管理 在iOS中,使用引用计数来管理OC对象的内存 一个新创建的OC对象引用计数默认是1,当引用计数...

  • 内存管理:OC对象的内存管理MRC

    在iOS中,使用引用计数来管理OC对象的内存 一个新创建的OC对象引用计数默认是1,当引用计数减为0,OC对象就会...

  • 内存管理MRC

    在iOS中,使用引用计数来管理OC对象的内存一个新创建的OC对象引用计数默认是1,当引用计数减为0,OC对象就会销...

  • OC类对象的内存管理、AutoreleasePoolPage

    内存管理: 在iOS中,使用引用计数来管理OC对象的内存 一个新创建的OC对象引用计数默认是1,当引用计数减为0,...

  • 内存管理

    OC对象的内存管理 1、在iOS中,使用引用计数来管理OC对象的内存,一个新创建的OC对象引用计数默认是1,当引用...

  • 底层26:内存管理

    在iOS中,使用引用技术来管理OC对象的内存一个新创建的OC对象引用计数默认为是1,当引用计数减为0,OC对象就会...

  • iOS-内存管理5-引用计数、__weak原理

    一. 引用计数 1. 引用计数存储在哪 我们都知道,调用retain会让OC对象的引用计数+1,调用release...

  • 引用计数

    OC内存管理的机制就是引用计数 自动引用计数(ARC) 在Build Settings中搜索 automatic ...

网友评论

      本文标题:OC引用计数

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