2012-11-17 3 views
1

iOS 앱을 사용하여 AWS DynamoDB에 연결하는 데 어려움을 겪고 있습니다. 나는 DynamoDB에 관한 튜토리얼/문서가 없다는 점에 좌절감을 표한다. (아직도 상당히 새로운 것 같다.) 그러나 나는 따라하기 위해 애써왔다. Amazon's User Preference Tutorial 나는 데이터베이스에 연결하고 무언가를 읽거나 무엇인가를 쓰려고하는데 예외가 발생한다.iOS AWS DynamoDB가 요청을 실행할 수 없습니다.

AmazonCredentials *creds; 
creds = [creds initWithAccessKey:MY_ACCESS_KEY withSecretKey:MY_SECRET_KEY]; 
AmazonDynamoDBClient *ddb = [[AmazonDynamoDBClient alloc] initWithCredentials:creds]; 
DynamoDBGetItemRequest *request = [[DynamoDBGetItemRequest alloc] 
    initWithTableName:@"Users" andKey:[[DynamoDBKey alloc] initWithHashKeyElement: 
    [[DynamoDBAttributeValue alloc] initWithS:@"Chase"]]]; 
DynamoDBGetItemResponse *response = [ddb getItem:request]; //THROWING THE EXCEPTION HERE! 
NSMutableDictionary *user = response.item; 
NSLog(@"%@",user); 

출력을 읽 때문에, 이유는 'AmazonServiceException'캐치되지 않는 예외 응용 프로그램 종료 : ''

내가 내 사용자를 설정하는 방법이 무엇인지 튜토리얼을 완료 한 변경 유일한

DynamoDBCreateTableResponse *response = [[AmazonClientManager ddb] getItem:request]; 

내가 언제 어디서나 AmazonClientManager 클래스를 찾을 수 없습니다,하지만 AmazonDynamoDBClient 클래스는 같은 방법을 갖고있는 것 같아요, 그래서 나는 그것이 (작동한다고 가정입니다 : 자격 증명과 예외를 throw 라인, 튜토리얼이있다 이 내 코드를 어기는 가정이 될 수 있습니다.) 아마 어떤 문서에서도 찾을 수 없기 때문에 아마존이 여전히 그 수업을 지원하는지 모르겠습니다.

또한 나는 소리를 지르기 전에 앱에서 내 자격 증명을 넘겨서는 안된다는 것을 알고 있습니다. 나는 이것을 나중에 바꿀 것이다. 나는 지금 막 정신 상태에 이르려고 노력하고있다.

답변

3

당신은 또한이

AmazonCredentials *creds = [[AmazonCredentials alloc] initWithAccessKey:MY_ACCESS_KEY withSecretKey:MY_SECRET_KEY]; 

에이 라인

AmazonCredentials *creds; 
creds = [creds initWithAccessKey:MY_ACCESS_KEY withSecretKey:MY_SECRET_KEY]; 

을 변경해야 AmazonClientManager는 SDK의 일부가 아닙니다. 샘플 애플리케이션의 일부이며 AmazonDynamoDBClient의 인스턴스를 반환합니다. 샘플 프로젝트에 포함되어 있습니다.

+0

정말 잘됐다. 그렇다면 포인터를 선언하고 초기화하는 것이 왜 효과가 없을까요? –

+1

두 줄로도이 작업을 수행 할 수 있습니다 :'AmazonCredentials * creds; creds = [[AmazonCredentials alloc] initWithAccessKey : MY_ACCESS_KEY withSecretKey : MY_SECRET_KEY];',하지만 여전히'alloc'을 호출해야합니다. 그렇지 않으면 자격증 명 객체가 메모리에 할당되지 않습니다. –

+0

오 답변이되었을 때 iOS 개발 환경에 얼마나 젊습니까? –