I have a problem in that I am trying to background load a sound file while the user moves around a UIScrollView... The problem is that I am using NSURLRequest so I can load in the background, but even then it refuses to actually load until the UIScrollView has stopped scrolling. :(
Is there anything I can do about this?
Thanks!
The NSURLRequest
only manages the request, not the actual connection.
Touch events such as scrolling will place the run loop into NSEventTrackingRunLoopMode
. By default, an NSURLConnection
is scheduled to only execute in NSDefaultRunLoopMode
. So while in NSEventTrackingRunLoopMode
, NSDefaultRunLoopMode
is blocked.
Good news is that you can schedule additional modes for an NSURLConnection
, such as NSRunLoopCommonModes
.
connection = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:NO];
[connection scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
[connection start];