我遇到了一个问题,我正在尝试在用户移动UIScrollView时后台加载声音文件...问题是我正在使用NSURLRequest进行后台加载,但即使如此,它也拒绝真正地加载,直到UIScrollView停止滚动。 :(
这个问题有什么解决办法吗?
谢谢!
我遇到了一个问题,我正在尝试在用户移动UIScrollView时后台加载声音文件...问题是我正在使用NSURLRequest进行后台加载,但即使如此,它也拒绝真正地加载,直到UIScrollView停止滚动。 :(
这个问题有什么解决办法吗?
谢谢!
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];
self.connection = NSURLConnection(request: self.request, delegate: self, startImmediately:false)
self.connection?.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes)
self.connection?.start()