如何延迟调用具有多个参数的方法 [英] how to call a method of multiple arguments with delay
本文介绍了如何延迟调用具有多个参数的方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图在延迟一段时间后调用一个方法.
I'm trying to call a method after some delay.
我知道有一个解决方案:
I know there is a solution for that:
[self performSelector:@selector(myMethod) withObject:nil afterDelay:delay];
但我的问题是:如何调用带有两个参数的方法??
But my question is: How can I call a method that takes two parameters??
例如:
- (void) MoveSomethigFrom:(id)from To:(id)to;
我将如何延迟调用此方法,使用 performSelector:withObject:afterDelay:
How would I call this method with delay, using performSelector:withObject:afterDelay:
谢谢
推荐答案
use dispatch_after:
use dispatch_after:
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
//code to be executed on the main queue after delay
[self MoveSomethingFrom:from To:to];
});
EDIT 2015:对于 Swift,我建议使用这个小助手方法:dispatch_after- 快速 GCD?
EDIT 2015: For Swift, i recommend using this small helper method: dispatch_after - GCD in swift?
这篇关于如何延迟调用具有多个参数的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文