异步和回调理解和命名约定

时间:2012-01-28 17:45:49

标签: iphone objective-c asynchronous

我在我的应用程序中使用ASIHTTPRequest,专门用于异步请求。 一些方法是异步方法的组合。 例如,看一些方法+(void)updateData,它会调用

  • [x downloadData1]这是异步的
  • [y downloadData2]这是异步的
  • ...

由于异步/回调机制,我的方法updateData将被拆分(而不是同步上下文中只有一个方法),它将需要:

-(void) updateData {
    ... // Some work
    x.callback = @selector(updateData1);
    [x downloadData1];
}


-(void) updateData1 {
    ... // Some work
    y.callback = @selector(updateData2);
    [x downloadData2];
}

...

- (void) updateDataN {
    ... // Some work
    // Need to callback my own "delegate"
    [self.target performSelector:callback ...];
}

因此,updateData也是异步的。

这段代码不是来自我的项目,我只是试图描绘一个简单的例子。但是可以有一些条件调用和复合材料......

在这里,代码变得难以阅读。很难遵循执行流程。 你建议通知一个方法是异步的(-Async后缀?)还是回调,有什么好的做法或命名约定?我发现后缀数字很难看,不适合非线性流程。

你有什么建议?你遇到了什么? 或者你认为它是由设计不良的代码造成的?

1 个答案:

答案 0 :(得分:1)

重构它以使用块 - 这会将响应放在请求旁边吗?