今天遇到一个问题:退出页面的时候,未把performSelector的方法取消,导致了内存泄露。
所以,现在整理整理一下,取消performSelector的方法。
performSelector方法,默认在当前线程,如果子线程使用,需要自己去启动,但是不需要Add,只需要run就可以了。此方法是一种非阻塞的执行方式。
添加performSelector用法:
[self performSelector:@selector(delayMethod) withObject:nil/*可传任意类型参数*/ afterDelay:2.0];
Object为ni的取消方法:
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(delayMethod:) object:nil]; //取消所有的performSelector:方法
Object不为ni的取消方法:(以下两个方法必须都要调用)
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(delayMethod:) object:nil]; //取消所有的performSelector:方法
[[self class] cancelPreviousPerformRequestsWithTarget:self];//取消本类中的performSelector:方法
网友评论