如何延迟方法调用?
问题描述:
我希望能够调用的方法,然后,要么等待的方法来完成做的事情,然后调用next方法调用,或者调用一个方法,等待一定的时间,然后调用一个方法。如何延迟方法调用?
上我会怎么做,有什么想法?
例子:
[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];
答
答
如果你想确保方法已完成做它,为什么不要么
a)调用method2 at方法1的端部
或
b)中去与performSelectorOnMainThread:withObject:waitUntilDone:由德尼兹莫特Edincik
或
c)中所建议的发送NSNotification在方法1的端部,以触发方法2(你可以添加一个观察者在方法1该通知和方法2,再删除,如果方法1是在其他地方也叫你不想方法2触发每次)
你不应该工作与afterDelay,依靠任何耽误你指定的......
答
破坏你的代码中的一半(例如成多种方法)。
...
[self method1];
return;
}
- (void) secondHalf {
[self method2];
...
要等待method1完成,请退出/退出/从您的代码的第一部分返回到运行循环。有其他的东西开始你的方法的后半部分(通知,委托,计时器等)。在实例变量中保存任何需要的局部变量或其他状态。
这是否是偶然做的所有动画?如果是这样,你会以错误的方式去做。 – jer 2010-10-30 21:10:58
其实不,我不是想动画 – cgossain 2010-10-30 21:14:11