Простой выбор URL с использованием следующего кода Obj-C:
self.sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
self.sessionConfiguration.allowsCellularAccess = YES;
self.sessionConfiguration.timeoutIntervalForRequest = 30.0;
self.sessionConfiguration.timeoutIntervalForResource = 60.0;
self.sessionConfiguration.URLCache = nil;
self.sessionConfiguration.HTTPMaximumConnectionsPerHost = 8;
self.session = [NSURLSession sessionWithConfiguration:self.sessionConfiguration delegate:self delegateQueue:nil];
NSURLSessionDataTask *fetchDataTask = [self.session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
// some code here to handle the result
}];
[fetchDataTask resume];
Результаты НА НЕКОТОРЫХ УСТРОЙСТВАХ (iOS 12+) приводят к ошибке службы DNS:
Задание. <1> завершено с ошибкой -
код: -999 Задача. <1> HTTP загрузка
Ошибка (код ошибки: -999 [1:89]) dnssd_clientstub ConnectToServer:
connect () -> Нет попыток: 1 dnssd_clientstub ConnectToServer:
connect () -> Нет попыток: 2 dnssd_clientstub ConnectToServer:
connect () -> Нет попыток: 3 dnssd_clientstub ConnectToServer: connect ()
ошибочный путь: / var / run / mDNSResponder Сокет: 4 ошибка: -1 ошибка: 1 операция
не разрешено nw_resolver_create_dns_service_locked [C2]
Сбой DNSServiceCreateDelegateConnection: ServiceNotRunning (-65563)
- Работает без ошибок на симуляторе
- На некоторых устройствах работает без ошибок (пробовал на iPhone 7, XS Max, iPad mini 4)
- Перезагрузка устройства не помогает
- Случайно запускается / останавливается на любом устройстве
Я могу найти в Интернете несколько тем об этой проблеме, но все они связаны с macOS, а не с iOS. (Предлагаемое решение состоит в том, чтобы отключить изолированную программную среду в целевых возможностях XCode, но этот параметр не существует в проектах iOS.)