how to call a method of multiple arguments with delay
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: For Swift, i recommend using this small helper method: dispatch_after – GCD in swift?