Analyze静态分析所出现的问题总结

前言
使用Xcode自带的静态分析工具 Product->Analyze(快捷键command+shift+B)可以找出代码潜在错误,如内存泄露,未使用函数和变量等
所谓静态内存分析, 是指在程序没运行的时候, 通过工具对代码直接进行分析根据代码的上下文的语法结构, 让编译器分析内存情况, 检查是否有内存泄露

Analyze主要分析以下四种问题:
1、逻辑错误:访问空指针或未初始化的变量等;
2、内存管理错误:如内存泄漏等; 比如ARC下,内存管理不包括core foundation
3、声明错误:从未使用过的变量;
4、Api调用错误:未包含使用的库和框架。缺点: 静态内存分析由于是编译器根据代码进行的判断, 做出的判断不一定会准确, 因此如果遇到提示, 应该去结合代码上文检查一下

错误实例
1、nil returned from a method that is expected to return a non-null value
方法返回中需要一个对象(指针),你返回了一个空指针.例如,下图在UITableView的数据源回调方法返回cell的方法中,本应返回一个UITableViewCell对象,可是这里返回了一个nil对象(空指针)在这里插入图片描述
2、Value stored to "xxx"is never read
alertImageURL这个变量没有被使用,在当前类中搜索alertImageURL这个变量发现只是被赋值并没有被使用。
解除这个提示:删除或者注视这行代码OK;
在这里插入图片描述
3、nstance variable used while ‘self’ is not set to the result of '[(super or self) init…]

-(id) init
{
     if(![super init])
     {
         return nil;
     }
     //todo
     return self
}

修改以后

-(id) init
{
    self = [super init];
    if(!self)
    {
        return nil;
    }
     //todo
     return self
}

4、Dictionary value cannot be nil
字典里的元素没有初始化,indexStr直接初始化就行
NSString *indexStr = [[NSString alloc]init];
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值