1.延迟执行
1.1.perform...
// 3秒后自动回到当前线程调用 self 的 download: 方法,并且传递参数:@“http://xxx.jpg”
[self performSelector:@selector(download:)withObject:@"http://xxx.jpg",afterDelay:3];
1.2.dispatch_after...
// 任务当道那个队列中执行
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
int delay = 3; // 延迟多少秒
dispatch_after(dispatch_time(DISPATCH_TIME_NOW,(INT64_t)(delay * NSEC_PER_SEC)),queue,^{
// 3秒后需要执行的任务
});
2.一次性代码
static dispatch_once_t onctToken;
dispatch_once(&onceToken,^{
// 这里的代码,在程序运行中,永远只执行一次
});