最近同步和异步的区别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 很容易被滥用,几乎会导致糟糕的编程模式(特别是主线程的阻塞)。
以前有两种类型的请求使用 iOS:sendSynchronousRequest 和 sendAsynchronousRequest。但是,两者都在 iOS9 中被弃用。两种情况的推荐替代品:
[[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 很容易被滥用,几乎会导致糟糕的编程模式(特别是主线程的阻塞)。