Раньше в iOS было два типа запросов: sendSynchronousRequest и sendAsynchronousRequest. Однако оба они устарели в iOS9. Рекомендуемая замена для обоих случаев: 1 и 2 почти такой же:
[[NSURLSession sharedSession] dataTaskWithRequest:request
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error) {
//A piece of code after response completes.
}] resume];
Итак, в недавней iOS больше нет разницы между этими двумя? Почему было принято такое решение?