最近同步和异步的区别iOS

Difference between Synchronous and Asynchronous in the Recent iOS

以前有两种类型的请求使用 iOS:sendSynchronousRequest 和 sendAsynchronousRequest。但是,两者都在 iOS9 中被弃用。两种情况的推荐替代品: and 2 完全相同:

[[NSURLSession sharedSession] dataTaskWithRequest:request
                                completionHandler:^(NSData *data,
                                        NSURLResponse *response,
                                        NSError *error) {
    //A piece of code after response completes.
}] resume];

所以,最近iOS这两者之间没有区别了吗?为什么做出这样的决定?

通常,作为 Apple reviews/upgrades API,它们会淘汰可能会阻塞线程的同步方法,而只会引入异步再现。而且,在可能的情况下,这些新的异步方法通常也可以取消。这两个 NSURLConnection 便利方法应该被淘汰。

虽然我不记得 Apple 明确阐明了这一策略,但可以从他们的许多框架(NSURLSession、联系人框架、照片框架等)中看到的演变中逻辑地推断出这一点。我确定他们这样做是因为同步 API 很容易被滥用,几乎会导致糟糕的编程模式(特别是主线程的阻塞)。