DynamoDB 使用 iOS 移动 SDK 检索项目
DynamoDB Retrieve an Item using iOS mobile SDK
我开始使用 iOS 的 AWS 移动 SDK,但无法正确加载项目。我已经很好地映射了实体,因为我可以将项目保存到 DynamoDB table.
我的问题是加载操作后无法获取信息。我正在关注 this AWS docs,它表示结果将映射到对象。这是我的代码:
AWSDynamoDBObjectMapper *dynamoDBObjectMapper = [AWSDynamoDBObjectMapper defaultDynamoDBObjectMapper];
DDBUser *user = [DDBUser new];
user.u_id = credentialsProvider.identityId;
[[dynamoDBObjectMapper load:[DDBUser class] hashKey:user.u_id rangeKey:nil] continueWithBlock:^id(BFTask *task) {
if (task.error) {
NSLog(@"The request failed. Error: [%@]", task.error);
return nil;
}
if (task.exception) {
NSLog(@"The request failed. Exception: [%@]", task.exception);
return nil;
}
NSLog(@"name: %@", [(DDBUser *)task.result name]);
NSLog(@"name: %@", [user name]);
return nil;
}];
此处,第一个日志的名称正确,但第二个为空。
非常感谢!
这是预期的行为。 task.result
包含结果,而不是 user
。您可能希望将代码片段重写为如下内容:
AWSDynamoDBObjectMapper *dynamoDBObjectMapper = [AWSDynamoDBObjectMapper defaultDynamoDBObjectMapper];
[[dynamoDBObjectMapper load:[DDBUser class] hashKey:credentialsProvider.identityId rangeKey:nil] continueWithBlock:^id(BFTask *task) {
if (task.error) {
NSLog(@"The request failed. Error: [%@]", task.error);
return nil;
}
if (task.exception) {
NSLog(@"The request failed. Exception: [%@]", task.exception);
return nil;
}
if (task.result) {
DDBUser *user = task.result;
NSLog(@"name: %@", [user name]);
}
return nil;
}];
我开始使用 iOS 的 AWS 移动 SDK,但无法正确加载项目。我已经很好地映射了实体,因为我可以将项目保存到 DynamoDB table.
我的问题是加载操作后无法获取信息。我正在关注 this AWS docs,它表示结果将映射到对象。这是我的代码:
AWSDynamoDBObjectMapper *dynamoDBObjectMapper = [AWSDynamoDBObjectMapper defaultDynamoDBObjectMapper];
DDBUser *user = [DDBUser new];
user.u_id = credentialsProvider.identityId;
[[dynamoDBObjectMapper load:[DDBUser class] hashKey:user.u_id rangeKey:nil] continueWithBlock:^id(BFTask *task) {
if (task.error) {
NSLog(@"The request failed. Error: [%@]", task.error);
return nil;
}
if (task.exception) {
NSLog(@"The request failed. Exception: [%@]", task.exception);
return nil;
}
NSLog(@"name: %@", [(DDBUser *)task.result name]);
NSLog(@"name: %@", [user name]);
return nil;
}];
此处,第一个日志的名称正确,但第二个为空。
非常感谢!
这是预期的行为。 task.result
包含结果,而不是 user
。您可能希望将代码片段重写为如下内容:
AWSDynamoDBObjectMapper *dynamoDBObjectMapper = [AWSDynamoDBObjectMapper defaultDynamoDBObjectMapper];
[[dynamoDBObjectMapper load:[DDBUser class] hashKey:credentialsProvider.identityId rangeKey:nil] continueWithBlock:^id(BFTask *task) {
if (task.error) {
NSLog(@"The request failed. Error: [%@]", task.error);
return nil;
}
if (task.exception) {
NSLog(@"The request failed. Exception: [%@]", task.exception);
return nil;
}
if (task.result) {
DDBUser *user = task.result;
NSLog(@"name: %@", [user name]);
}
return nil;
}];