iOS 开发

iOS block 中野指针

2016-04-12  本文已影响1109人  shao_hu

在MRC环境下,如果在block中调用了野指针会出现崩溃的情况。比如下面的场景:

mrc 环境下:

在一个view A 走了dealloc后,如果再执行block内代码 bself.hidden = hidden; 会导致崩溃。

__block __typeof__(self) bself = self;

[UIView animateWithDuration:10.2f animations:^{

} completion:^(BOOL finished) {

bself.hidden = hidden;

}];

解决方法:malloc_zone_from_ptr来判断野指针。

#import <malloc/malloc.h>

if (malloc_zone_from_ptr(bself))

解决方案出自:http://blog.csdn.net/likendsl/article/details/37906999

上一篇 下一篇

猜你喜欢

热点阅读