就職の面接で、非同期でファイルをダウンロードするために NSURLConnection の代わりにブロックと GCD を使用する必要がある理由を尋ねられました。いくつかの調査の後、私はそれを行う正当な理由を見つけられませんでした。複数の同時ダウンロードに問題なく NSURLConnection だけを使用する複数のアプリがあります。彼らの質問は、私がトレンディなもの (GCD、ブロック) に準拠しているかどうかを確認しようとしているのですか、それともこの方法で非同期フェッチを行うことに実際の実質的な利点があるのでしょうか? ありがとう。
5 に答える
1
非常に多くの接続を行っていて、非常に高速なネットワーク接続を介して大量のデータを転送している場合、これらの NSURLConnectionsをメインランループ。とはいえ、優先度の低いバックグラウンド スレッドを独自の実行ループで簡単にスプールして、これらの操作をメイン スレッドから切り離すこともできます。
NSURLConnection のすべての余分な機構 (キャッシング、認証など) を必要としない場合、dispatch_io*
生のネットワーク I/O を処理するためのオーバーヘッド メカニズムはほぼ確実に低くなりますが、実際にはかなりの機能を放棄することになります。実際には、ごくわずかなパフォーマンスの向上であると予想されます。
于 2013-10-01T19:37:30.777 に答える