美文网首页
Analyze静态分析内存泄露修复

Analyze静态分析内存泄露修复

作者: 天天想念 | 来源:发表于2020-06-29 16:01 被阅读0次

1.Value stored to 'tempA' during its initialization is never read

容易出现这个问题的情况:一个数据源却申请了两块内存。导致另外一个内存没用了。如:

例子1:想把两个可变数组分情况赋值
    //NSMutableArray * tempA = [NSMutableArray arrayWithCapacity:0]; //错误
    NSMutableArray * tempA; //正确:只需做一个可变数组tempMutArr的声明,不需要给它分配实际内存
    if (self.mSwitch.isOn) {
        tempA = self.array1;
    }else{
        tempA = self.array2;
    }
例子2:取值
    //NSMutableArray *datesArray = [[NSMutableArray alloc]init];//错误
    NSMutableArray *datesArray = nil;                           //正确
    datesArray = [_onDemandDictionary objectForKey:key];

上述标明错误的语句的的错误原因是:那样做会导致整段代码下来出现了一个数据源却申请了两块内存的情况。从而导致静态检测内存泄露的时候,有有内存泄漏的提示 Value stored to 'tempMutArr' during its initialization is never read。

2.Converting a pointer value of type 'NSNumber *' to a primitive boolean value; instead, either compare the pointer to nil or call -boolValue

将类型为“NSNumber *”的指针值转换为原始布尔值; 相反,要么将指针与nil进行比较,要么调用-boolValue

修改前
NSNumber *delayTimeUnclampedProp = gifProperties[(NSString *)kCGImagePropertyGIFUnclampedDelayTime];
    if (delayTimeUnclampedProp) {
        frameDuration = [delayTimeUnclampedProp floatValue];
    }
修改后
NSNumber *delayTimeUnclampedProp = gifProperties[(NSString *)kCGImagePropertyGIFUnclampedDelayTime];
    if (delayTimeUnclampedProp !=nil) {
        frameDuration = [delayTimeUnclampedProp floatValue];
    }

3.Property of mutable type 'NSMutableString' has 'copy' attribute; an immutable object will be stored instead

NSMutableString类型是可变字符串对象,使用strong修饰

@property (nonatomic,strong) NSMutableString *pwStr;

4.nil passed to a callee that requires a non-null 1st parameter

nil传递给需要非null第一个参数的被调用者

只需要添加一个非空判断,保证传入的参数不为空即可

相关文章

  • Analyze静态分析内存泄露修复

    1.Value stored to 'tempA' during its initialization is ne...

  • IOS性能调优系列:使用Instruments动态分析内存泄漏(

    1.Analyze对App做静态分析,可以发现应用中的内存泄露问题,但是对于有些内存泄露通过静态内存分析是无法解决...

  • iOS 内存优化

    内存优化 一. 内存泄露 Xcode 自带了两种内存泄露查询工具:1 . Analyze(静态分析工具): 逻辑缺...

  • 重点 (二十八) : 内存管理

    一. 内存分析 主要目的就是为了检测程序是否存在内存泄露 静态内存分析(Analyze) 作用: 逻辑错误:访问未...

  • 内存泄露

    内存泄露解决分为了三步: 1.静态分析:Instruments的Analyze。通过静态分析我们可以最初步的了解到...

  • iOS内存泄露的个人经验

    内存泄露解决分为了三步: 1.静态分析:Instruments的Analyze。通过静态分析我们可以最初步的了解到...

  • 内存分析

    内存分析 主要目的就是为了检测程序是否存在内存泄露 1. 静态内存分析(Analyze) 2. 动态内存分析 3....

  • 静态分析

    Xcode 自带的静态分析工具 Analyze,通过静态语法分析能够找出在代码层面就能发现的内存泄露问题,还可以通...

  • 内存泄露和循环引用问题

    内存泄露和循环引用问题 开发项目时你怎么检查内存泄漏 静态分析analyze instruments里有一个lea...

  • 内存管理

    怎么保证多人开发进行内存泄露的检查?使用Analyze进行代码的静态分析。尽量使用ARC环境开发。 非自动内存管理...

网友评论

      本文标题:Analyze静态分析内存泄露修复

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