我正在尝试使用AFNetworking
进行一系列网络操作。例如:
[SomeApiICreated doNetworkingStuff success:^(NSString *message)
{
NSLog(@"Yay!");
}
failure:^(NSError *error)
{
NSLog(@"Oh noes!");
}];
现在,在Donetworkingstuff中,我想执行潜在的多个网络任务。例如
- 获取应用程序令牌
- if(
appTokenGot
)step3 else callfailure - 使用应用令牌获取内容列表
- if(
listGot
)step5 elsecallFailure
- 等。
,但我也想调用仅执行3个步骤的doNetworkingStuff2
"是的"或"有问题"
NSOperationQueue
是正确的,还是"如果这个,则"的嵌套函数是阻止执行此操作的最佳方法?
任何示例也将有所帮助。
为什么不只是调用其他功能从成功/失败块中传递数据。例如,我在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);
}
}];
这样,我不会在成功和故障障碍中堆叠大量逻辑。
afaik,做到这一点的最佳方法是使用完成回调进行连续的呼叫。请记住,您需要响应对象来执行连续的步骤,因此您在成功回调中收到此对象。