需要objective-c暂停/等待功能

需要objective-c暂停/等待功能,objective-c,Objective C,我需要在iPhone objective-c应用程序中添加暂停/等待功能。函数sleep()对我不起作用 myscore += [self getcard]; myscore += [self getcard]; 需要在两者之间添加暂停/等待功能 myscore += [self getcard]; myscore += [self getcard]; 我还没有看到objective-c的函数,但我使用了一个NSTimer,它在您决定的时间间隔内调用给定的函数 myscore += [s

我需要在iPhone objective-c应用程序中添加暂停/等待功能。函数sleep()对我不起作用

myscore += [self getcard];

myscore += [self getcard];
需要在两者之间添加暂停/等待功能

myscore += [self getcard];

myscore += [self getcard];

我还没有看到objective-c的函数,但我使用了一个NSTimer,它在您决定的时间间隔内调用给定的函数

myscore += [self getcard];

myscore += [self getcard];

myscore += [self getcard];

myscore += [self getcard];
更具体地说,使用函数scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:DoesforMe。时间间隔是以秒为单位的,即每个刻度之间的“睡眠”时间,目标是持有应该调用的函数的类,选择函数

myscore += [self getcard];

myscore += [self getcard];
scheduledTimerWithTimeInterval:1          // Ticks once per second
                        target:myObject   // Contains the function you want to call
                      selector:@selector(myFunction:) 
                      userInfo:nil
                       repeats:YES

如果将等待后发生的事情的代码分开,则可以使用performSelector:withObject:afterDelay:在延迟后调用该选择器

myscore += [self getcard];

myscore += [self getcard];
例如,在5秒钟后退出应用程序:

myscore += [self getcard];

myscore += [self getcard];
[NSApp performSelector:@selector(terminate:) withObject:nil afterDelay:5.0];

这将在暂停当前方法的同时运行
[nsrunlop currentRunLoop]
2秒,使您能够同时处理输入和其他内容:

myscore += [self getcard];

myscore += [self getcard];
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:2]];

您可以使用GCD(grandcentraldispatch)中的dispatch\u after方法,如下所示

myscore += [self getcard];

myscore += [self getcard];
sleep()
无法工作,因为它会阻止从中调用它的踏板。它是阻止所有事件等的UI/主线程。