我正在尝试使用AFNetworking
进行一系列网络操作。例如:
[SomeApiICreated doNetworkingStuff success:^(NSString *message)
{
NSLog(@"Yay!");
}
failure:^(NSError *error)
{
NSLog(@"Oh noes!");
}];
现在在doNetworkingStuff中,我想做潜在的多个网络任务。例如
appTokenGot
)step3 else callFailure listGot
)step5 else callFailure
但是我还要打电话给doNetworkingStuff2
只执行第3步及以上的步骤,基本上让我按需要排队操作,混合和匹配em等等。但是所有人都有一个主要电话我可以说“是的,这有效”,或“有问题”
NSOperationQueue
对此是正确的,或者是“如果这个,那么这个”的嵌套函数阻止了这样做的最佳方法吗?
任何例子都会有所帮助。
答案 0 :(得分:1)
为什么不调用其他函数从成功/失败块中传递数据。例如,我使用App.net API。
[[KSADNAPIClient sharedAPI] postPath:@"stream/0/posts"
parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject)
{
[[KSPostsController sharedController] addPosts:responseObject];
}
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
if (block) {
block([NSArray array], error);
}
}];
这样我就不会在成功和失败块中叠加大量逻辑。
答案 1 :(得分:0)
AFAIK,执行此操作的最佳方法是使用完成回调来执行连续调用。请记住,您需要响应对象来执行后续步骤,因此您将在成功回调中接收此对象。