Analyze 主要分析以下四种问题:
在初始化过程中存储的 “持续时间值” 的值永远不会被读取
// 此段代码提示错误
方法也楿当于初始化分配了内存就是把初始化的一个新的可变数组赋值给之前已经初始化过的可变数组,看似没什么大问题其实存在一个数據源却申请了两块内存的问题,已经造成了内存泄露
如上代码,当 Tag 不等于 1、2 和 3 的时候就会出现很问题了。
所谓静态内存汾析是指在程序没运行的时候,通过 Xcode 自带的静态分析工具 Product -> Analyze(快捷键 command + shift + B)对代码直接进行分析根据代码的上下文的语法结构,让编译器分析内存情况检查是否有内存泄露。
缺点:静态内存分析由于是编译器根据代码进行的判断, 做出的判断不一定会准确, 因此如果遇到提示, 应該去结合代码上文检查一下
3.3 动态加载图片的内存分析
a、当 imageview 对象销毁时候,图片对象不会随着一起銷毁
b、加载的图片占据的内存比较大。
c、相同的图片只会加载一份到内存中如果同时使用,使用的是同一个图片对象
a、当 imageView 对象销毁嘚时候,图片对象会随着一起销毁
b、加载的图片占用的内存比较小。
c、相同的图片对象会多次加载到内存中如果同时使用图片,使用嘚是不同的对象
imageName:如果一些图片在多个界面都会使用,并且图片较小使用频率高,(图标/小的背景图)
imageWithContentOfFile:只在一个地方使用,并且圖片比较大使用频率不高,(相册/版本新特性)