我想能够调用一个方法,然后等待方法完成它的事情,然后调用下一个方法调用,或者调用一个方法,等待一段时间,然后调用下一个方法
有关我将如何做的任何想法?
示例:
[self method1];
//wait for method1 to finish whatever it's doing then move onto the next line
[self method2];
OR
[self method1];
//wait say, 500ms then move onto the next line
[self method2];
答案 0 :(得分:1)
答案 1 :(得分:1)
如果你想确保方法已经完成了它的工作,为什么不能
a)在method1
结束时调用method2或
b)使用performSelectorOnMainThread:withObject:waitUntilDone:根据Deniz Mert Edincik的建议
或
c)在method1的末尾发送NSNotification以触发method2(您可以在method1中为该通知添加一个观察者,并在method2中再次删除它,如果在其他地方也调用了method1,并且您不希望每次都触发method2)
您不应该使用afterDelay,依赖于您指定的任何延迟......
答案 2 :(得分:0)
将代码分成两半(例如分成多种方法)。
...
[self method1];
return;
}
- (void) secondHalf {
[self method2];
...
要等待method1完成,退出/退出/从代码的第一部分返回到运行循环。有其他东西开始你的方法的后半部分(通知,委托,计时器等)。在实例变量中保存所有必需的局部变量或其他状态。