NSTimer失效的情况
1.NSRunLoop释放
2.NSRunLoop未开启
3.无法释放的内存管理问题,解决方法:
通过重写NSTimer的调用方法,用虚拟类(weakTimer)来引用父类进行消息转发
4.在table中添加NSTimer,当拖动table的时候
table的runloop的模式为UITrackingRunLoopModes,此时NSTimer不会执行
需要将NSTimer加入到NSRunLoopCommonModes(addTimer forMode)
5.[self performSelector:@selector(method1:) withObject:self.tableLayer afterDelay:3];
执行的时候,系统将self.tableLayer的计数加1
执行结束,系统将self.tableLayer的计数减1
延迟执行3秒,如果在此之前,返回页面或其他操作,则dealloc方法不会执行,造成内存泄漏
(解决方法:手动调用cancel perform request方法)