我需要在我的iPhone objective-c应用程序中添加暂停/等待功能。函数sleep()对我不起作用。
需要在这两者之间添加暂停/等待功能。
myscore += [self getcard];
myscore += [self getcard];
答案 0 :(得分:3)
我没有看到Objective-c的这样一个函数,但是我使用了一个NSTimer,它在你决定的时间间隔内调用给定的函数。
更具体地说,使用函数scheduledTimerWithTimeInterval:target:selector:userInfo:重复:为我做。时间间隔是以秒为单位,每次滴答之间的“睡眠”时间,目标是持有应该调用的函数的类,选择函数。
scheduledTimerWithTimeInterval:1 // Ticks once per second
target:myObject // Contains the function you want to call
selector:@selector(myFunction:)
userInfo:nil
repeats:YES
答案 1 :(得分:3)
这会在暂停当前方法的同时运行[NSRunLoop currentRunLoop]
2秒钟,让您同时处理输入和其他内容:
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:2]];
答案 2 :(得分:1)
如果将代码分开等待后发生的事情,可以使用performSelector:withObject:afterDelay:在延迟后调用该选择器。
示例,5秒后退出应用程序:
[NSApp performSelector:@selector(terminate:) withObject:nil afterDelay:5.0];
答案 3 :(得分:0)
您可以使用GCD(大中心调度)中的dispatch_after方法,如此
myscore += [self getcard];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
myscore += [self get card];
});