instrument Leaks

2018-06-17  本文已影响0人  foolish_hungry
  1. 新建立一个工程
    修改 ARC 配置为 NO 就是将内存管理修改为 MRC
image.png
  1. 在ViewController 中添加一个button点击事件
- (IBAction)buttonClick:(id)sender {
// Person 为新建立的类, 属性只有一个str, 用于测试
    Person *p = [Person new];
    [p retain];
    p.str = @"12343434";
}
  1. 打开Leaks 分析工具

第一种方式:


image.png

选择 leaks


image.png

第二种方式: (推荐)
command + I

  1. 开始检测
image.png image.png

出现 内存泄漏的情况了


image.png image.png image.png image.png image.png
  1. 在xcode 中修改内存泄漏的地方
image.png

参考Rock鑫

两个小技巧

1. 访问僵尸对象时, log 输出一些提示

具体操作


image.png image.png

测试例子

- (IBAction)buttonClick:(id)sender {
    // Person 自定义类
    Person *person = [[Person alloc] init];
    // 先要将 ARC 转换为 MRC编译才可用release  (可以全局转 也可以单独.m 文件转)
    [person release];
    person.str = @"12";
}

单独转


image.png

全局转


image.png

command + r 运行后 查看测试结果


image.png
2. 静态分析,是否有僵尸对象 或者内存泄漏

command + shift + b
或者


image.png

开始静态分析...

image.png

对象已经被释放, 不能再使用.

上一篇 下一篇

猜你喜欢

热点阅读