2018-04-24

第五章:内存管理

29. 什么是ARC:对象被引用的次数。
30. ARC 下可以用“静态分析器”查找内存泄漏问题
31. 在dealloc 里面只释放引用和解除监听

执行异步的方法不应该在dealloc里面执行,因为此时对象已经处于回收状态了

32. 编写异常安全代码时注意内存问题:try-catch-finally
33. 以弱引用来避免保留环

unsafe_unretained 相当于assgin ,声明表示属性可能不安全,系统回收后,在其上调用方法可能使程序崩溃。
区别在于前者修饰对象类型,后者assgin 修饰基本类型
weak 和上述内存语义相同,不同的是对象被回收后,会自动置为nil,这是一个安全的特性。

34. 用自动释放池@autoreleasePool降低内存峰值
35. 用僵尸对象调试程序:scheme->
36. 不要使用retainCount:无用的方法

ARC已经废弃,不能使用,即使再MRC下也是不准确的,只代表某个时间点上的值,并未考虑系统稍后会把自动释放池清空后的状态;另外可能永远都不会返回0,比如系统会优化对象的释放行为,在等于1的时候就回收了

你可能感兴趣的:(2018-04-24)