2016-11-23 6 views
0

amazon s3サーバーからのplistファイルからデータを取得するiOSアプリケーションがあります。新しいNSURLSessionフレームワークを使用してデータを取得したいと考えています。だから私は次のコードを持っています(私はRay Wenderlichのドットコムのチュートリアルから使用しています)。NSURLSessionはplistファイルからデータを取得しません

NSString *dataUrl = @"https://s3.amazonaws.com/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.plist"; 
    NSURL *url = [NSURL URLWithString:dataUrl]; 

    // 2 
    NSURLSessionDataTask *downloadTask = [[NSURLSession sharedSession] 
              dataTaskWithURL:url completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
               // 3: Handle response here with more of my code 
              }];// 4  
[downloadPhotoTask resume]; 

* dataURLからURLをコピーしてWebブラウザに挿入すると、ファイルが正常にダウンロードされます。しかし、私のiOSアプリケーションでは、データはなく、エラーは「ストリーム内に少なすぎるバイト」です。

誰かが私が逃しているもののアイデアはありますか?

+1

間違った作業を再開しています。 – vadian

+0

したがって、あなたのcompletionHandler(コメント#3)のデータはnilであり、ストリームのバイト数が少なすぎるというNSErrorが発生しますか? 'data'と' response'に関する情報と共に正確なエラーメッセージを投稿できますか? –

+0

あなたはcompletionHandler内のエラーを調べましたか?また、あなたのコードはRay Wenderlichのコードと同じではありません。特に、downloadTaskはローカル変数です。範囲外になったときの動作は分かりませんが、ダウンロードをキャンセルする可能性は十分あります。 – Gruntcakes

答えて

0

初めから、コード自体が機能するはずです。あなたはどういうわけか [downloadTask resume]; を意味しましたか?

+0

はい、[downloadTask resume]です。私の間違い – K2Digital

+0

私は間違ったデータストリームを参照していました。私の間違い。 – K2Digital

+0

この[リンク](https://www.raywenderlich.com/76341/use-nsoperation-nsoperationqueue-swift)は、サーバー側でplistファイルを使用しています。 – Nik

関連する問題