Мне нужно загрузить длинный список файлов, и поэтому все эти операции могут занять много времени. Я решил управлять этими задачами загрузки с помощью NSURLSession, созданной с использованием конфигурации фона. Как только вы построили и запустили код на моем iPhone, я пытаюсь проверить приложение, отключая устройство и запуская приложение без xCode. В этой ситуации я заметил, что загрузка больше не запускается, если соединение не осуществляется через WiFi. Кроме того, я замечаю, что во время операций загрузки, если устройство переходит в спящий режим, разблокировка его через несколько секунд (10-15 секунд) приложение будет перезаписано, и загрузка будет остановлена. Я не знаю, важно ли это, но я надеюсь, что эти проблемы не существовали в iOS 8.2 (теперь я использую iOS 8.3).background Проблемы с NSURLSession при развертывании ad-hoc при переходе устройства в спящий режим
Моя конфигурация сеанса, как следовать
NSString *sessionIdentifier = @"com.yourappfor.example";
NSURLSessionConfiguration *sessionConfiguration;
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) {
sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:sessionIdentifier];
} else {
sessionConfiguration = [NSURLSessionConfiguration backgroundSessionConfiguration:sessionIdentifier];
}
[sessionConfiguration setAllowsCellularAccess:YES];
[sessionConfiguration setSessionSendsLaunchEvents:YES];
[sessionConfiguration setURLCache:nil];
[sessionConfiguration setDiscretionary:YES];
[sessionConfiguration setTimeoutIntervalForRequest:90.0];
[sessionConfiguration setTimeoutIntervalForResource:43200.0];
[sessionConfiguration setHTTPMaximumConnectionsPerHost:15];
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration delegate:self delegateQueue:nil];
И когда вы говорите, «загрузка остановлена», вы имеете в виду, что они потерпели неудачу с ошибкой, или что они просто не по всей видимости, возобновляя своевременно? Если вы включите питание и подключитесь к Wi-Fi, они возобновляются? – Rob
Нет, ошибка не возвращена. Я снова подключу Wi-Fi, и загрузка возобновится. –
OK. Тогда проблема, скорее всего, является «дискреционной» настройкой. См. Http://stackoverflow.com/a/25653066/1271826. – Rob