ユーザーが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];
startImmediately:YESを呼び出すか、このパラメーターを省略した場合、2行目は完全に役に立たないという難しい方法を理解しました。したがって、@tidwallによって提供される正確なパターンに従うようにしてください。
簡単な例もあります。
self.connection = NSURLConnection(request: self.request, delegate: self, startImmediately:false)
self.connection?.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSRunLoopCommonModes)
self.connection?.start()