nsurlconnectionDelegateプロトコルの進行状況indictorの実装
-
29-10-2019 - |
質問
ファイルをアップロードしてダウンロードしようとするときに、いくつかの進捗状況の表示を試みています。
読んでいて、これが私が使用する必要がある方法のように見えます。
- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite
その関数の仕組み(つまり、いつ呼ばれるのかなど)についてもっと読みたいのですが、参照ドキュメントを見つけることができないようです。私はこのURLに行きましたが、その特定の機能について何も言っていません。
それについてもっと読むことができますか?
ありがとうございました、
ティー
解決
NSURLConnection
代表者のための非公式のプロトコルがありました。それはiOS 5で変化しました(同じことがOSXで起こったと思います)。彼らは、宣言された方法を非難しました NSURLConnection
それらを正式なプロトコルに移動しました NSURLConnectionDelegate
と NSURLConnectionDataDelegate
.
そして今、楽しい部分。彼らは方法を非難しました、彼らはそれらをから削除しました NSURLConnection
ドキュメントですが、新しい正式なプロトコルを文書化しませんでした。現在、のみ NSURLConnectionDelegate
文書化されています。 NSURLConnectionDataDelegate
どこにも言及されていません。
方法が何をするかを見つける方法は2つあります。
の以前のバージョンを調べてください
NSURLConnection
ドキュメント(例えばiOS 4.3)。私はあなたにリンクを与えますが、私はそれをオンラインで見つけることができませんでした。たぶん、あなたはあなたのXcodeにライブラリをダウンロードしていますXcodeでCMD-Shift-Oを押します
NSURLConnectionDataDelegate
Enterを押します。ヘッダーが見つかりましたが、メソッドには説明があります。接続:DidSendBodyData:TotalBytesWritten:TotalByTeSexPectedTowRite:アップロード操作中に呼び出されて、進行状況フィードバックを提供します。リクエストを再送信する必要がある場合、値は予期しない方法で変更される可能性があることに注意してください。
他のヒント
試す アフネットワーキング サポートを心配している場合、AsihttpRequestの人気のある代替品を生み出しています。また、ダウンロードの進行状況を組み込んだサポートが組み込まれています。 (このリンクの説明を参照してください。) これが実際にそれを使用する方法の最近の議論です.
アップデート
アップロードまたはダウンロードの進行状況を追跡するにはどうすればよいですか? (Afnetworking FAQ)
afurlConnectionOperationは、setuploadprogressblockをsetuploadprogressblock:およびset downloagProgressBlock:。を提供します。各メソッドは単一のパラメーターを取ります。これは、リクエストの寿命の間に定期的に実行されるブロックです。ブロックには返品タイプがなく、3つの引数を取ります:このコールバック用に読み取られたバイトまたは書き込み、これまでに読み取られたバイトまたは書き込まれたバイトの総数、および読み取りまたは書き込みが予想されるバイトの総数。
進行状況バーを更新したい場合は、それぞれの進行状況ブロックを設定して、0.0〜1.0の間で正規化された予想数で割引された総数バイトを読み取るか、書かれた総数バイトに設定できます。この値に基づくUIの更新は、リクエストが行われると非同期に更新されます。