NSURLRequest не будет срабатывать при прокрутке UIScrollView

У меня есть проблема в том, что я пытаюсь загрузить фоновый файл, когда пользователь перемещается по UIScrollView... Проблема в том, что я использую NSURLRequest, поэтому могу загружать в фоновом режиме, но даже тогда он отказывается на самом деле загружать, пока UIScrollView не остановит прокрутку.: (

Что я могу с этим поделать?

Спасибо!

Ответы

Ответ 1

NSURLRequest управляет только запросом, а не фактическим подключением.

Прикоснитесь к событиям, таким как прокрутка, поместите цикл выполнения в NSEventTrackingRunLoopMode. По умолчанию, NSURLConnection назначается только в NSDefaultRunLoopMode. Поэтому, когда в NSEventTrackingRunLoopMode, NSDefaultRunLoopMode заблокирован.

Хорошей новостью является то, что вы можете планировать дополнительные режимы для NSURLConnection, например NSRunLoopCommonModes.

connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
[connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
[connection start];

Ответ 2

Я понял, насколько сложно, если вы сразу вызовите start: YES или опустите этот параметр, вторая строка абсолютно бесполезна. Поэтому обязательно следуйте точной схеме, предоставляемой @tidwall.

Здесь также быстрый пример:

self.connection = NSURLConnection(request: self.request, delegate: self, startImmediately:false)
self.connection?.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes)
self.connection?.start()