2011-07-18 16 views
12

私はダウンロードするassestsのURLのリストを取得しようとしています。このURLのリストを持つJSONファイルを取得するためにNSURLConnectionを使用しています。総バイト数が書かれたよう ios5のconnectionDidFinishDownloadingでdestinationURLデータを取得できません

- (void)connection:(NSURLConnection *)connection didWriteData:(long long)bytesWritten totalBytesWritten:(long long)totalBytesWritten 

に私は122239を取得しています。

- (void)connectionDidFinishDownloading:(NSURLConnection *)connection destinationURL:(NSURL *)destinationURL 

が、私はJSONファイルを抽出するために、URLデータを読み込むしようとして呼び出されたとき:

NSData *data = [NSData dataWithContentsOfURL:destinationURL options:NSDataReadingUncached error:&error]; 

データは常に私にはnil値を与えているのもで書かれた122239バイトがありますこのファイルとエラーの印刷の説明に「No such file or directory」と表示されています

Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn\u2019t be completed. (Cocoa error 260.)" UserInfo=0x4a1b90 {NSFilePath=/private/var/mobile/Applications/CD8E4838-D78D-41DE-8896-360B7FC02A1D/tmp/c1749157e1d4317f6158a8490e138e7e, NSUnderlyingError=0x4c5ae0 "The operation couldn\u2019t be completed. No such file or directory"} 

ご意見はありますか?

+2

これを解決しましたか?私はまったく同じ問題を抱えています – JConway

+0

私は同じ問題を抱えており、いくつかのgooglelingをしました。これはバグのようです。うまくいけば、iOSアップデートがこれを修正することを願っています。 – Klaas

+0

http://bugreport.apple.comでレーダーをファイルしましたか?これがバグだと思っていて、小さなコードサンプルをデモする必要がある場合は、私の経験上、これが劇的に修正される可能性が高くなります。 – Philippe

答えて

10

NSURLConnectionDownloadDelegateこれまでのところ、Newstandアプリでのみ動作します。バグを報告してください。

3

代わりにNSURLConnectionDataDelegateを試してみることもできます。ドキュメントには表示されませんが、実際にはそこに表示されます(を開けてを開き、Cmd + Shift + O)。あなたは、次の方法にあなたのクラスの存在

  1. - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
  2. - (void)connectionDidFinishLoading:(NSURLConnection *)connection
+3

あなたのクラスにNSURLConnectionDownloadDelegateメソッドがある場合、NSURLConnectionDataDelegateは呼び出されません。気を付けて! – jAckOdE

+0

これは完全に私のために働いた。 jAckOdEのアドバイスはここでも重要です。 –

+0

...小さい(ish)ファイルにのみ使用する必要があります。 – thomers

0

IIF NSURLConnectionDownloadDelegateメソッドを使用することができますがあり

、NSURLConnectionDataDelegateは呼び出されません。気を付けて! - jAckOdE下記のErik Aignerの答えに感謝します。

基本的に... NSURLConnectionDownloadDelegateはNSURLConnectionDataDelegateをオーバーライドします。注意してください! :)

0
– (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data 

上記の方法は、postメソッドを使用して取得するデータを受け取るために使用されます。

– (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 

この方法では、サーバーに接続されていない場合のエラーレポートを受け取ることができます。

– (void)connectionDidFinishLoading:(NSURLConnection *)connection 

上記の方法は、接続が正常に完了した後にデータを処理するために使用されます。

関連する問題