iOS4中是否有一种方法可以在延迟后使用NSThread之外的其他内容调用方法或使用sleep()阻止UI?
答案 0 :(得分:29)
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 main thread.If you want to run in another thread, create other queue
});
答案 1 :(得分:9)
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay
NSObject
会为你做这件事。
此外,您可以创建NSTimer
并让它在给定的时间后对某个目标和选择器执行回调。
答案 2 :(得分:3)
您可以使用NSTimer。 (例如timerWithTimeInterval:target:selector:userInfo:repeats
)
答案 3 :(得分:3)
[self performSelector:@selector(methodName) withObject:nil afterDelay:2.0];
答案 4 :(得分:1)
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self
selector:@selector(aMethod:) userInfo:nil repeats:NO];
- (void) aMethod:(NSTimer *) aTimer {
//task to do after the delay.
}
答案 5 :(得分:0)
您可以通过以下方式轻松完成:
[self performSelector:@selector(methodName) withObject:nil afterDelay:5];