1
次の3つのデリゲートメソッドを使用して、S3から画像を取得します。彼らは提示された順序で呼び出されます。AWS S3デリゲートメソッドがiPhoneで中断されました
-(void)request:(AmazonServiceRequest *)request didReceiveResponse:(NSURLResponse *)response;
-(void)request:(AmazonServiceRequest *)request didReceiveData:(NSData *)data;
-(void)request:(AmazonServiceRequest *)request didCompleteWithResponse:(AmazonServiceResponse *)response;
私は、もし画像が前didCompleteWithResponseが終了する前に、時にはdidReceieveResponseが呼び出されますこと大であることに気付きました。これは、2番目のデリゲートで受け取ったNSDataをねじ込みます。
これを修正するにはどうすればよいですか?これらの3つはすべて、繰り返しごとにforステートメントの繰り返しで呼び出されます。そのよう:
for (NSString *name in array){
@try {
S3GetObjectRequest *gor = [[S3GetObjectRequest alloc]initWithKey:name withBucket:[Constants pictureBucket]];
[gor setDelegate:self];
[s3 getObject:gor];
}
申し訳ありませんが、わかりません。あなたは、開始する前に前のものをチェックするように各要求を書いていると言っていますか?どうすればいい? – Eric
@ Eric 3つのリクエスト(またはNSDataで必要なアクション)のレスポンスを保存し、NSData * data1、data2、data3という3つのNSDataオブジェクトを管理したいとします。今すぐあなたのデリゲートメソッドで、(要求がfirstRequest){[データ1追加データ]} else if(要求がsecondRequest){.....などを確認します。 WHOLEDポイントは応答NSDataチェックで何かをする前です。どのリクエストに属しているのですか – aqs
私の質問は私がそれをしなければならないと思いますか?各デリゲートは、そのデータオブジェクトの単一のインスタンスに関連付けられることはありませんか? – Eric