如何正确管理充满异步块的工作流程?

时间:2013-07-01 16:00:37

标签: ios objective-c api

我正在使用Evernote API,而且我不确定如何正确管理使用块,而不会让我的代码变得非常混乱并且到处乱窜。

API包含此样式的方法:

[object doSomethingWithSuccess:^(NSObject *anotherObject) {
    NSLog(@"success!");
} failure:(NSError *error) {
    NSLog(@"failure!");
}

之后,我必须根据成功的方法运行另一个类似的方法,然后基于该方法运行另一个类似的方法。

我也有一个问题,我真的只想运行一个做某事的方法,然后在需要很长时间后返回,但我不能从块内返回。

人们如何处理这个问题?

一个例子:

在某些情况下,我想创建一个笔记本,然后做其他事情。 “别的东西”每次都不同。我永远不会把代码连接到标准代码,我会运行一个方法:

[self connect];

//Do the 'something else'

但是在这种情况下,除了将[self connect]中的代码复制并粘贴到我想要连接的任何地方,然后运行下一段代码之外,我甚至无法想到一种方法可以做到这一点。在完成处理程序中。

1 个答案:

答案 0 :(得分:1)

要根据成功运行其他事情,你只需从块中调用它们 - 如果它是另一个需要另一个块的操作,通常人们只是嵌套它们。

您必须创建另一个在块完成时调用的方法,而不是从块中返回。