iOS5 で NSURLConnection メソッドが Deprecated になってる
iOSアプリで非同期にファイルをダウンロードする場合、NSURLConnection のメソッドを使うのがお約束
- connection:didReceiveResponse:
- connection:didReceiveData:
- connectionDidFinishLoading:
- connection:didFailWithError:
- connection:didReceiveAuthenticationChallenge:
、、、だったんだけど、iOS5 から Deprecated になってた。じゃーどすれば良いのかって話も書いてくれてないし (T^T)
どーなってんだと思ってたら、stack overflow にネタ見っけた :-)
Fishing around the header files tells me that the methods were moved from an informal protocol (which is a deprecated Obj-C pattern) into a formal delegate protocol called NSURLConnectionDataDelegate that's in NSURLConnection.h, but doesn't have a public documentation.
iOS5 NSURLConnection methods deprecated
どうやら iOS5 からは NSURLConnectionDataDelegate が追加されて、そこにメソッドが移されたみたい。たしかに URLConnection の delegate を指定するときに xxxDelegate とか明示的に宣言しないまま self とか指定して???とは思ってたけど。まぁ、キレイに整理しました、、、って感じなんだろね。
ただ、Public Document に載ってないのに
おまけ
おまけ2
NSURLConnectionDownloadDelegate の使い方サンプルで良い感じのがあったのでメモっとこ :-)
おまけ3 - 2011/11/28
上で書いた話の裏取り。iOS 4.3 to iOS 5.0 API Differences を見たら、確かに NSURLConnection.h で duplicated (Removed) になったメソッドが NSURLConnectionDataDelegate 以下に移動 (Added)されたってなってる。でも Public API にリンクされてない。なんでだろ?ホントにこの API 使うで大丈夫なんかな? ^^;)
NSURLConnectionDataDelegate that's in NSURLConnection.h, but doesn't have a public documentation.