nsurlsession ios 13 cell Error Domain = NSURLErrorDomain Code = -1009 "Интернет-соединение отключено." - PullRequest
0 голосов
/ 22 сентября 2019
    NSString *dataUrl = @"https://st2.depositphotos.com/2001755/5408/i/450/depositphotos_54081723-stock-photo-beautiful-nature-landscape.jpg";
    NSURL *url = [NSURL URLWithString:dataUrl];
    NSURLSessionConfiguration *configuration = NSURLSessionConfiguration.defaultSessionConfiguration;
    configuration.allowsCellularAccess = YES;
    configuration.waitsForConnectivity = YES;
    configuration.allowsExpensiveNetworkAccess = YES;
    configuration.allowsConstrainedNetworkAccess = YES;
    NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
    NSURLSessionDataTask *downloadTask = [session
      dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        NSLog(@"%@", error);
    }];
    [downloadTask resume];

У нас есть старое приложение, которое было разработано в 2015 году, в нем много старого кода.На iOS 13, к сожалению, на CELLULAR все запросы NSURLSession (не только к нашему серверу, но и к любому серверу) завершаются с ошибкой:

Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={_kCFStreamErrorCodeKey=50, NSUnderlyingError=0x280526af0 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={NSURLErrorNetworkUnavailableReasonKey=1, kCFStreamErrorCodeKey=50, kCFStreamErrorDomainKey=1}}, NSURLErrorNetworkUnavailableReasonKey=1, NSLocalizedDescription=The Internet connection appears to be offline.

Где NSURLErrorNetworkUnavailableReasonKey = 1 - URLError.NetworkUnavailableReason.exорого

Запросы NSURLConnection в порядке (кроме предупреждения об устаревании)

Какие глобальные настройки или, по крайней мере, локальные настройки, которые я должен включить, чтобы выполнить успешный запрос?

1 Ответ

0 голосов
/ 24 сентября 2019

После 7 часов исследования я обнаружил, что проблема была в библиотеке CCInfiniteScrolling (github.com/ziryanov/CCInfiniteScrolling).Проблема с категорией NSObject и неправильным кодированием во время выполнения: NSObject + DProperty.m.Переписываем все в object_associations и все работает отлично.

...