如何使方法等到另一个方法完成它在Objective C中工作?

时间:2013-06-06 11:23:46

标签: objective-c methods completion-block

考虑这种情况。

-(void) mainMethod
{
   [self subMethod1];
   [self subMethod2];
}

我的假设:

调用mainMethod时,会先调用subMethod1,然后调用subMethod2。但是,没有规则说“仅在完成subMethod1后,subMethod2应该被调用”。如果我使用一些延迟线或一些持续时间为subMethod1的动画,控件将不会等待它完成。它将开始下一个过程。因此,subMethod2可以在subMethod1完成其工作之前调用。我是对的吗?

问题:

如何让subMethod2等待,直到subMethod1完成它的工作?

注意:我不想将subMethod2放入subMethod1

1 个答案:

答案 0 :(得分:5)

你应该使用一个完成块(比如UIView动画具有在动画发生后执行的块)。

如果您不熟悉积木,请查看Apple's Short Practical Guide to Blocks