1、timer计时器退出页面没有销毁
[timer setFireDate:[NSDate distantFuture]];
[timer invalidate];
timer = nil;
2、block循环引用self
使用宏:
//解决block强引用问题 宏
define WeakSelf(weakSelf) __weak __typeof(&*self)weakSelf = self;
define StrongSelf(strongSelf) __strong __typeof(&*self)strongSelf = weakSelf;
如果是一个self,在block外用WeakSelf,block里用weakSelf。
如果是多个self,在block外用WeakSelf,block里用StrongSelf。
3、调用了perfomSelector函数
使用[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(test:) object:nil];
4、使用@property (nonatomic, weak) id delegate
5、自定义的view(先removefromsuperview,再置为nil,即可调动view的dealloc方法)
6、block中用到了成员变量
将成员变量修改为属性
7、NSNotication remove
网友评论