0

ファイルをアップロードおよびダウンロードしようとしているときに、進行状況を表示しようとしています。

読んでいて、これが私が使用する必要がある方法のように見えます。

- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite

その関数がどのように機能するか(つまり、いつ呼び出されるかなど)について詳しく知りたいのですが、リファレンスドキュメントが見つからないようです。このURLにアクセスしましたが、その特定の機能については何も述べていません。

https://developer.apple.com/library/mac/#documentation/Foundation/Reference/NSURLConnectionDelegate_Protocol/Reference/Reference.html%23//apple_ref/occ/intf/NSURLConnectionDelegate

どこでそれについてもっと読むことができますか?

ありがとう、
ティー

4

2 に答える 2

2

NSURLConnectionその代表者のための非公式の議定書がありました。これは iOS 5 で変更されました (OSX でも同じことが起こったと思います)。で宣言されたメソッドを廃止し、NSURLConnection正式なプロトコルNSURLConnectionDelegateおよびに移動しましたNSURLConnectionDataDelegate

そして今、楽しい部分です。彼らはメソッドを非推奨にし、NSURLConnectionドキュメントから削除さえしましたが、新しい正式なプロトコルについてはドキュメント化しませんでした。現在、 のみNSURLConnectionDelegateが文書化されています。NSURLConnectionDataDelegateはどこにも言及されていません。

メソッドの機能を見つけるには 2 つの方法があります。

  1. 以前のバージョンのNSURLConnectionドキュメント (iOS 4.3 など) を調べてください。リンクを提供したいのですが、オンラインで見つけることができませんでした。XCode にライブラリをダウンロードしている可能性があります。

  2. Xcode で cmd-shift-oNSURLConnectionDataDelegateを押し、入力して Enter キーを押します。ヘッダーが見つかりました。メソッドには説明があります。

    connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite: はアップロード操作中に呼び出され、進行状況のフィードバックを提供します。要求を再送信する必要がある場合、値が予期しない方法で変更される可能性があることに注意してください。

于 2012-02-22T21:26:15.473 に答える
0

AFNetworkingを試してみてください。サポートが心配な場合は、ASIHTTPRequest の一般的な代替品になりつつあります。また、ダウンロードの進行状況のサポートが組み込まれています。(このリンクの議論を参照してください。 )実際の使用方法に関する最近の議論を次に示します

アップデート

アップロードまたはダウンロードの進行状況を追跡するにはどうすればよいですか? (AFNetworking よくある質問)

AFURLConnectionOperation は、メソッド setUploadProgressBlock: および setDownloadProgressBlock: を提供します。各メソッドは、リクエストの有効期間中に定期的に実行されるブロックである 1 つのパラメーターを取ります。このブロックには戻り値の型がなく、3 つの引数を取ります。このコールバックで読み取られた、または書き込まれたバイト数、これまでに読み取られた、または書き込まれた合計バイト数、読み取りまたは書き込まれると予想される合計バイト数です。

プログレス バーを更新する場合は、それぞれのプログレス ブロックを設定して、読み取りまたは書き込みの合計バイト数を 0.0 から 1.0 の間で正規化された期待値で割った値に進行量を設定できます。この値に基づく UI の更新は、リクエストが行われているときに非同期で更新されます。

于 2012-02-22T21:44:15.153 に答える