IOS 关于取消延迟执行函数的种种。performSelector与cancelPreviousPerformRequestsWithTarget

转载 2016年05月30日 19:48:43
@interface NSObject (NSDelayedPerforming)  
  
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay inModes:(NSArray *)modes;  
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;  
+ (void)cancelPreviousPerformRequestsWithTarget:(id)aTarget selector:(SEL)aSelector object:(id)anArgument;  
+ (void)cancelPreviousPerformRequestsWithTarget:(id)aTarget;  
  
@end  


最近看到大家对cancelPreviousPerformRequestsWithTarget不能取消带参数的
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;
情况,写了一点点代码调试了一下,发现如果是带参数,那取消时的参数也要一致,否则不能取消成功。
开始延迟执行:


[self performSelector:@selector(didRuninCurrModel:) withObject:[NSNumber numberWithBool:YES] afterDelay:3.0f];  
  
[self performSelector:@selector(didRuninCurrModelNoArgument) withObject:nil afterDelay:3.0f];  


假如在三秒内执行以下取消方法,则结果分别为:


[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(didRuninCurrModel:) object:[NSNumber numberWithBool:YES]];//可以取消成功。  
  
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(didRuninCurrModel:) object:[NSNumber numberWithBool:NO]];//不能取消成功。参数不匹配  
  
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(didRuninCurrModel:) object:nil];//不能取消成功。参数不匹配  
  
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(didRuninCurrModelNoArgument) object:nil];//可以成功取消  
  
[NSObject cancelPreviousPerformRequestsWithTarget:self];//可以成功取消全部。  
[[self class] cancelPreviousPerformRequestsWithTarget:self];//可以成功取消全部。  

代码下载地址:http://download.csdn.net/detail/samuelltk/5481327



IOS 关于取消延迟执行函数的种种。performSelector与cancelPreviousPerformRequestsWithTarget

from : http://blog.csdn.net/samuelltk/article/details/8994313
  • xyt243135803
  • xyt243135803
  • 2014年11月23日 23:02
  • 673

IOS 取消延迟执行函数 (perform selector)

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(xxxx) object:nil];
  • liangguo03
  • liangguo03
  • 2013年05月20日 15:50
  • 8001

IOS 关于取消及延迟执行函数 performSelector 与 cancelPreviousPerformRequestsWithTarget

performSelector: withObject: afterDelay: [self performSelector:@selector(delNotification:) withObje...
  • bianruifeng
  • bianruifeng
  • 2013年06月15日 15:39
  • 1313

iOS 关于取消延迟执行函数 performSelector与cancelPreviousPerformRequestsWithTarget

[cpp] view plain copy @interface NSObject (NSDelayedPerforming)      - (void)perfor...
  • wu347771769
  • wu347771769
  • 2017年07月25日 10:36
  • 154

取消延迟执行函数 cancelPreviousPerformRequestsWithTarget

延迟执行函数 [self performSelector:@selector(scrollDone) withObject:nil afterDelay:0.5]; 在0.5秒内取消执行函数,带的...
  • wmqi10
  • wmqi10
  • 2015年08月18日 16:48
  • 10331

performSelector用法和cancelPreviousPerformRequestsWithTarget用法

performSelector:afterDelay : 相当于javascript的setinterval,就是说过多久运行该程序,方法格式如下: [self performSelector:...
  • hong1595
  • hong1595
  • 2014年06月24日 14:26
  • 2803

[置顶] IOS 关于取消延迟执行函数的种种。performSelector与cancelPreviousPerformRequestsWithTarget

[cpp] view plaincopy @interface NSObject (NSDelayedPerforming)    - (void)performSelector:(SE...
  • huzhaohao
  • huzhaohao
  • 2015年12月29日 17:48
  • 163

执行延迟IOS关于取消延迟执行函数的种种

写这篇博客要主是加深自己对执行延迟的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。 @interface NSObject (NSDelayedPerforming) - (vo...
  • sky_2016
  • sky_2016
  • 2014年12月12日 17:52
  • 1353

关于performSelector延迟调用后无法走dealloc方法

今天测试项目是否存在bug,然后一直不停的跳界面看是否会导致崩溃。测试的结果很满意(小七原以为。。。),但是当决定停止然后测试其他的时候,不经意间瞅了一眼内存,竟然达到了400M,用逗逗的话就是瞬间吓...
  • chong2vv
  • chong2vv
  • 2015年01月22日 17:47
  • 638

iOS 取消延时执行 performSelector: withObject: afterDelay:

- (void)viewDidLoad {     [super viewDidLoad];     // Do any additional setup after loading t...
  • zhang_biao_1991
  • zhang_biao_1991
  • 2016年03月15日 10:24
  • 1168
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS 关于取消延迟执行函数的种种。performSelector与cancelPreviousPerformRequestsWithTarget
举报原因:
原因补充:

(最多只允许输入30个字)