2010-09-24 90 views

回答

0

使用的NSTimer:

- (void)doThing 
{ 
    [self doFirstPart]; 

    [NSTimer scheduledTimerWithTimeInterval:2.0 
      target:self 
      selector:@selector(doSecondPart) 
      userInfo:nil 
      repeats:NO]; 
} 

- (void)doFirstPart { printf("Hello, "); } 
- (void)doSecondPart { printf(" world!\n"); } 
2

拆分方法为myMethodPartAmyMethodPartB。然后,在myMethodPartA末,用线:

[self performSelector: @selector(myMethodPartB) withObject: yourArgument afterDelay: someNSTimeInterval] 

如果您需要从myMethodPartA通过一堆信息myMethodPartB,你可以捆绑所有信息到一个NSArray您作为参数传递给myMethodPartB

0

您可以随时使用sleep()usleep()函数。在NSThread上也可能有方便的方法,具体取决于您使用的是什么(无论如何,您经常在一个线程上工作)。

+2

这对您的主线程来说是个坏主意。如果你这样做,UI会在睡眠期间冻结。 – JeremyP 2010-09-24 09:38:58

+0

总的来说,我会同意。但没有给出上下文。那么,事实上,他特别要求“不使用任何线程”,因此所有performSelector:...在技术上都是说出来的。他想要*停止*其他方法做*不*完成! – Eiko 2010-09-24 19:05:08