这取决于如何将所有内容推入堆栈。你最好的办法是观察你的堆栈(打印出消息)等等来弄清楚。堆定义了执行的顺序。如果延迟有问题,操纵堆顺序可能会为您解决它。如果你需要同时执行一些东西,多线程和在块代码中折腾应该会有所帮助。
- (void)didReceiveNetworkMessage {
[obj respondToMethod];
}
- (void)myBigMethod {
[obj mySmallMethod1];
[obj mySmallMethod2];
/* network message received now */
[obj mySmallMethod3];
[obj mySmallMethod4];
}
从上面提到的参考代码来看,respondToMethod, mySmallMethod1,2,3,4 似乎是按该顺序调用的。
我猜我必须在完全缺乏上面提供的信息的情况下澄清这一点(包括哪些消息实际上调用了这些方法以及在哪里调用)。没有这些信息,我的答案是正确的。不知道为什么我因此而被否决。我已经说明了调用和执行方法的顺序,假设您在 mySmallMethod3 之前和 mySmallMethod2 之后收到来自 respondToMethod 的回调。这就是上面例子中所说的。如果您希望获得更好的答案,请提供一个更好更清晰的示例。