【问题标题】:DynamoDB Retrieve an Item using iOS mobile SDKDynamoDB 使用 iOS 移动 SDK 检索项目
【发布时间】:2015-02-22 14:35:56
【问题描述】:

我开始使用适用于 iOS 的 AWS 移动开发工具包,但无法正确加载项目。我的实体映射得很好,因为我可以将项目保存到 DynamoDB 表中。

我的问题是加载操作后无法获取信息。我正在关注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;
}];

这里,第一个日志的名称正确,但第二个为空。

非常感谢!

【问题讨论】:

    标签: ios mobile amazon-web-services sdk amazon-dynamodb


    【解决方案1】:

    这是一种预期的行为。 task.result 包含结果,而不是 user。您可能希望将代码 sn-p 重写为如下内容:

    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;
    }];
    

    【讨论】:

    • 很公平,但这意味着什么(取自文档)“对象映射器创建从数据库返回的 Book 项目和客户端上的 Book 对象(此处为 resultBook)之间的映射。因此,假设 Book 项目有一个标题,我们可以在 resultBook.Title 中访问该标题。”我该怎么做?
    • 网站需要更新。您可以通过以下方式访问标题:if (task.result) { Book *resultBook = task.result; NSLog(@"title: %@", resultBook.Title); }.
    • 好吧,我也这么认为.. 网站已经过时了。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多