在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
网友评论