Objective c Swift同步API调用
我必须一个接一个地对服务器进行三个API调用(同步)。只有在第一个API成功的情况下,才需要调用第二个API。如果第一个API失败,那么我必须停止流,并显示另一个带有重试和取消的Objective c Swift同步API调用,objective-c,swift,grand-central-dispatch,Objective C,Swift,Grand Central Dispatch,我必须一个接一个地对服务器进行三个API调用(同步)。只有在第一个API成功的情况下,才需要调用第二个API。如果第一个API失败,那么我必须停止流,并显示另一个带有重试和取消的UIViewController。我应该使用什么以及如何使用 使用将对您有所帮助,以下是如何做到这一点: let queue = OperationQueue() let session = URLSession(configuration: URLSessionConfiguration.default) let fi
UIViewController
。我应该使用什么以及如何使用 使用将对您有所帮助,以下是如何做到这一点:
let queue = OperationQueue()
let session = URLSession(configuration: URLSessionConfiguration.default)
let firstOperation = TRVSURLSessionOperation(session: session, request: URLRequest(url: URL(string: "first url")!)) { (data, response, error) in
// Your completion logic
}
let secondOperation = TRVSURLSessionOperation(session: session, request: URLRequest(url: URL(string: "second url")!)) { (data, response, error) in
// Your completion logic
}
secondOperation?.addDependency(firstOperation!)
queue.addOperations([firstOperation!, secondOperation!], waitUntilFinished: false)
使用Operation Queue并使用OperationQueue管理依赖项您的问题有多个解决方案。以下是您应该查找的一些关键字:
NSOperation
、GCD、期货和承诺、异步/等待模式。苹果处理这一问题的方式是依赖于其他操作的操作。承诺的使用在这些任务中非常流行,最后,异步/等待可能是实现承诺的最干净(认知负载方面)的方法(我建议您首先检查)