1

選択クエリに Amazon SimpleDB を使用しています。AWS を使用しようとしてAmazonServiceRequestDelegateいます。デリゲート メソッドは次のとおりです (.h BTW に準拠しています)。

- (void)request:(AmazonServiceRequest *)request didFailWithError:(NSError *)error {

    NSLog(@"%@", error.localizedDescription);
}

- (void)request:(AmazonServiceRequest *)request didReceiveData:(NSData *)data {

    NSLog(@"recieving data");
}

- (void)request:(AmazonServiceRequest *)request didReceiveResponse:(NSURLResponse *)response {

    NSLog(@"response recieved");
}

- (void)request:(AmazonServiceRequest *)request didCompleteWithResponse:(AmazonServiceResponse *)response {

    NSLog(@"Completed");
}

didCompleteWithResponse:操作全体が応答で完了したときに呼び出されることになっているメソッドを除いて、それらはすべて呼び出されます。didFailWithError:どちらも呼び出されていませんが、とにかく操作が失敗する理由はわかりません。

選択クエリを作成するコードは次のとおりです。

        SimpleDBSelectRequest *sReq = [[SimpleDBSelectRequest alloc] initWithSelectExpression:SELECT_STRING andConsistentRead: YES];

    sReq.delegate = self;

    sReq.requestTag = FIND_FRIENDS_SDB;

    [sdbClient select: sReq];

SELECT_STRINGおよびは事前FIND_FRIENDS_SDB定義されており、コンテキスト文字列に対して有効です。

ここで私の問題は何ですか?ありがとう!

アップデート:

委任を機能させました。SimpleDB SELECT クエリに関連するエラーが発生しました。明らかに、SELECT 式の構文が無効です。2 つのクエリを実行しているため、2 つのエラーが発生します。それぞれの SELECT 式は次のとおりです。

select * from trvlogue-app where Type = 'account' AND itemName() = 'me%40rohankapur.com-account'

それは、「Type」属性と「itemName()」を見て、それらがドメイン内の何かと等しいかどうかをチェックしています。

select * from trvlogue-app where Email in('kate-bell%40mac.com','www.creative-consulting-inc.com','d-higgins%40mac.com','John-Appleseed%40mac.com' ','anna-haro%40mac.com','hank-zakroff%40mac.com')

これらの文字列がドメインの Email 属性に存在するかどうかを確認しています。

ノート:

どうやら SELECT 式を使用する場合、ドメイン名にダッシュを含めることができないようです。または、ダッシュが何らかの形でリクエストを壊しているようです

4

1 に答える 1

6

を使用する場合AmazonServiceRequestDelegateは、このブログ投稿が役立ちます。基本的に、次のことを行う必要があります。

  1. バックグラウンド スレッドで AmazonServiceRequestDelegate を使用しないでください。
  2. クライアントへの強い参照を保持します。
  3. デリゲートへの強い参照を保持します。

また、[AmazonErrorHandler shouldNotThrowExceptions]実装していないため、呼び出したことを確認する必要がありますrequest:didFailWithServiceException:詳細はこちらのブログ記事をご覧ください。

于 2013-01-17T20:41:14.553 に答える