12

ダウンロードするアセット URL のリストを取得しようとしています。この URL のリストを含む JSON ファイルを取得するために、NSURLConnection を使用しています。の

- (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 バイトが書き込まれており、エラー印刷の説明には「そのようなファイルまたはディレクトリはありません」と表示されています。

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"}

助言がありますか?

4

4 に答える 4

10

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

于 2012-01-18T00:43:32.457 に答える
3

NSURLConnectionDataDelegate代わりに使用してみてください。ドキュメントには表示されませんが、実際には表示されます([すばやく開く]を使用してCmd + Shift + Oを見つけます)。

そこで、次の方法を使用できます

  1. - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
  2. - (void)connectionDidFinishLoading:(NSURLConnection *)connection
于 2012-03-20T19:07:27.673 に答える
0

iIf NSURLConnectionDownloadDelegate メソッドがクラスに存在する場合、NSURLConnectionDataDelegate は呼び出されません。気を付けて!– jAckOdE 以下の Erik Aigner の回答のコメントに感謝します。

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

于 2013-04-05T21:53:07.180 に答える
0
– (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data

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

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

このメソッドを使用すると、サーバーに接続されていない場合にエラー レポートを受け取ることができます。

– (void)connectionDidFinishLoading:(NSURLConnection *)connection

上記のメソッドは、接続が正常に確立された後にデータを処理するために使用されます。

于 2014-10-07T04:42:45.980 に答える