プロフィール

pikab1

Author:pikab1
ただのチキンプログラマです。よろしく。


個人で作ったアプリ

AkiyoshiFan AkiyoshiFan ハンター文字 まとめDL

初/中級開発者におすすめ


カテゴリ


Twitter


月別アーカイブ


最新トラックバック


最新コメント


検索フォーム

ブロとも申請フォーム

QRコード

QR

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


NSURLConnectionでアップロードの進捗を表示する際の注意点

これは別に忘れないし備忘録でもないんだけど、サーバの知識が全くない人だとハマりそうだなと思ったので書いておきます。

NSURLConnectionでアップロードの進捗を取得する場合は以下のデリゲートを拾います。

// didSendBodyData : たった今アップしたデータサイズ
// totalBytesWritten : この通信で今までにアップした合計サイズ
// totalBytesExpectedToWrite : この通信でアップする最終的な合計サイズ
connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:

で、UIProgressViewとかを更新する場合は、

pv.progress = totalBytesWritten / totalBytesExpectedToWrite;

ってやる訳ですが、
サーバ(apacheなど)の設定でKeepAliveの設定がOFFになっているとtotalBytesWrittenが正常に取得できなくなります。
要するにKeepAliveがOFFなので、アップロードする際に連続通信が連続通信と見なされなくなります。

なので、didSendBodyDataのサイズを自分でローカル変数に足していった方がいいです。

今回の話とずれるのでここでは書きませんが、
ある処理を実装するとtotalBytesExpectedToWriteも正常に取得出来なくなるので、こいつも送信前に[bodyData length]とかで自分で管理しておく方が間違いないです。

コメント

コメントの投稿



管理者にだけ表示を許可する

トラックバック

http://pikab1.blog.fc2.com/tb.php/87-ba7c8402

 | ホーム |  page top


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。