如何用延迟调用多个参数的方法

如何用延迟调用多个参数的方法

问题描述:

我试图在一段时间后调用一个方法。

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延迟调用此方法:

谢谢

使用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];
});

编辑2015:对于Swift,我建议使用这个小帮手方法:dispatch_after - swift中的GCD?

EDIT 2015: For Swift, i recommend using this small helper method: dispatch_after - GCD in swift?