标签:integer 相关 循环引用 作用 统一 sign int 写入 数据类型
一:什么是ARC,ARC是iOS5引入的内存管理机制,即自动引用计数。相对于iOS早期的MRC即手动管理计数,在内存管理上更加高效和简便。
例如在一个函数中,初始化一个对象或者去持有一个对象则引用计数+1,但不再使用这个对象时,引用计数将会-1。这个过程如果使用MRC来操作,则需要手动写入retain和release,而ARC则优化了这个过程。
二:ARC的核心思想:
1.自己生成的对象,自己持有
2.非自己生成的对象,自己可以持有
3.自己持有的对象不在需要时,需要对其进行释放
4.非自己持有的对象无法释放
三:ARC在编译时,自动调用了retain(保留)和release(释放)的方法
ARC在运行时,主要指weak关键字,weak修饰的变量或者对象在引用计数为0时会自动设置成nil。
四:为什么有了ARC还需要 @autoreleasePool?
nil
来进行销毁。Runtime
中对该属性进行了相关操作,无需处理,可以自动销毁。weak
用来修饰对象,多用于避免循环引用的地方。 weak
不可以修饰基本数据类型。strong
类似,copy
多用于修饰有可变类型的不可变对象上 NSString
,NSArray
,NSDictionary
上.autorelease
让编译器来处理引用。__weak
)。nil
。标签:integer 相关 循环引用 作用 统一 sign int 写入 数据类型
原文地址:https://www.cnblogs.com/lh-learn/p/10667275.html