我有一个问题,我试图在用户移动UIScrollView时后台加载声音文件...问题是我使用NSURLRequest所以我可以在后台加载,但即使这样它也拒绝实际加载,直到UIScrollView停止滚动。 :(
我能做些什么吗?
谢谢!
答案 0 :(得分:27)
NSURLRequest
仅管理请求,而不是实际连接。
触摸滚动等事件会将运行循环放入NSEventTrackingRunLoopMode
。默认情况下,NSURLConnection
计划在<{1}}中执行 。因此,在NSDefaultRunLoopMode
中,NSEventTrackingRunLoopMode
被阻止。
好消息是,您可以为NSDefaultRunLoopMode
安排其他模式,例如NSURLConnection
。
NSRunLoopCommonModes
答案 1 :(得分:1)
我已经想出了如果你调用startImmediately很难的方法:YES或者省略这个参数,第二行完全没用。所以一定要遵循@tidwall提供的确切模式。
这也是一个很快的例子:
self.connection = NSURLConnection(request: self.request, delegate: self, startImmediately:false)
self.connection?.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes)
self.connection?.start()