使用NSStringFromSelector(_cmd), self) 函数 来跟踪对象的生命周期

 使用NSStringFromSelector(_cmd), self) 来跟踪对象的生命周期 


尽管Automatic Reference Counting (ARC)已经让内存管理变得简单、省时和高效,但是在objectlife-cycles中跟踪一些重要事件依然十分重要。毕竟ARC并没有完全排除内存泄露的可能性,或者试图访问一个被release的对象。为了这个目的,我们可以用一些处理方法和工具来帮助我们盯着对象正在做些什么。

 

LOG重要事件

Objective-C 对象的 life-cycle中有两个很重要的方法: init dealloc ,将这两个方法调用的事件logconsole是不错的选择——你可以通过控制台观察到对象生命的开始,更重要的是,可以确保对象的释放。

1.- (id)init

2.{

3.    self = [super init];

4.    if (self)

5.    {

6.        NSLog(@"%@: %@", NSStringFromSelector(_cmd), self);

7.    }

8.    return self;

9.}

10.- (void)dealloc

11.{

12.    NSLog(@"%@: %@", NSStringFromSelector(_cmd), self);

13.}

 

_cmd是隐藏的参数,代表当前方法的selector,他和self一样都是每个方法调用时都会传入的参数,动态运行时会提及如何传的这两个参数, 

你在方法里加入CCLOG(@\"%@, %@\",NSStringFromSelector(_cmd),self);语句之后,执行这个方法就会输出方法的名称, 

这样做是为了跟踪查看方法调用的前后顺序,或者想看看程序到底在那个方法内部崩溃的!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值