在Objective C中返回后,如何执行代码?

时间:2011-11-22 02:20:58

标签: objective-c

以下是我需要做的事情......

-(unsigned int)doSomething
{
    msg_id++;

    //something need to be done after returning
    //process

    return msg_id;
}

[somebody doSomething];

现在流程是这样的:

  1. somebody名为doSomething
  2. 执行流程
  3. 返回消息ID
  4. 我想要的流程:

    1. somebody名为doSomething
    2. 返回消息ID
    3. 执行流程
    4. somebody doSomething完成后,您可以让我这样做,但我无法更改此部分。我只能更改doSomething方法。此外,一些解决方法建议是在X秒后调用延迟。但我担心延迟X秒后。因为我不知道返回msg_id需要多少秒,实际上 还有更好的建议吗?

1 个答案:

答案 0 :(得分:3)

CS101。 return就是这么做的。它回来了。也许,您希望“进程”是在后台完成的,还是在单独的线程上完成的?你可能会看到这个:

-(unsigned int)doSomething
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
        //something need to be done after returning
        //process
    });

    return msg_id;
}

无论如何,我认为你需要重新思考你的逻辑。