我在不同的对象上安排不同的选择器
[self performSelector:@selector(doSmth) withObject:objectA afterDelay:1];
[self performSelector:@selector(doSmth) withObject:objectB afterDelay:1];
[self performSelector:@selector(doSmthElse) withObject:objectA afterDelay:1];
我想取消所有“doSmth”,该怎么做?不知道传递的对象
这将取消一切
[NSObject cancelPreviousPerformRequestsWithTarget:self];
这不会取消任何内容(因为对象不匹配)
[NSObject cancelPreviousPerformRequestsWithTarget:object
selector:@selector(doSmth) object:nil];
即使我会异常(exception)的行为(当传递 nil 时取消任何对象,但这不会发生)
最佳答案
无法获取待处理 performSelector
请求的列表,因此您需要维护传递给 performSelector
的参数列表,以便可以稍后取消它们。
关于objective-c - 执行cancelPreviousPerformRequestsWithTarget :selector:object: for all objects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28367134/