プロフィール

pikab1

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


個人で作ったアプリ

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

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


カテゴリ


Twitter


月別アーカイブ


最新トラックバック


最新コメント


検索フォーム

ブロとも申請フォーム

QRコード

QR

スポンサーサイト

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


HTTP通信するクラス作ってみた

まぁ世の中にはアホほど凄い通信ライブラリがある訳ですが、
あえて自分で作ってみました。

AFNetworkingは個人的に使いづらくて嫌いだったので、ASIHTTPRequestをリスペクトしてます。
まぁそのAFもASIをリスペクトしてるようですが...w

GitHubに置いてあるので指摘とか頂けると嬉しいです。
https://github.com/pikab1/KTHttpRequest

それにしても改めてソース読んでるとASIってほんと神ですねこれ…世間で言われてるように機能を盛り込みすぎて肥大化してますが、その盛り込み方がハンパないw
こんなん作れ言われたらどんだけ時間かかるか分かんないですよw

以上。
スポンサーサイト


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

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

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

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

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

pv.progress = totalBytesWritten / totalBytesExpectedToWrite;

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

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

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

base64エンコードライブラリ速度比較(ObjC)

672802バイトのNSDataをNSString(base64)変換で計測

https://github.com/nicklockwood/Base64
time is 0.011913 (sec)
time is 0.011703 (sec)
time is 0.011631 (sec)

https://github.com/ekscrypto/Base64
time is 0.013511 (sec)
time is 0.013407 (sec)
time is 0.013357 (sec)

www.imthi.com/wp-content/uploads/2010/08/base64.zip
time is 0.032205 (sec)
time is 0.031968 (sec)
time is 0.032276 (sec)

今作ってるアプリ平気でうん十MBうん百MBのデータ変換するから、ちょっとの差もちり積もりますねぇ。

以上。


 | ホーム |  » page top


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