【问题标题】:aws dynamodb how to use object mapper with batch get in iosaws dynamodb如何在ios中使用对象映射器批量获取
【发布时间】:2016-05-16 17:30:44
【问题描述】:

我需要使用 ios sdk 从 dynamodb 获取大约 50 个项目及其主键。我能够通过 AWSDynamoDB.defaultDynamoDB().batchGetItem 获取项目,但无法确定是否可以将对象映射器与响应一起使用。不幸的是,ios 中的 objectmapper 类没有 batchGet 功能。据我所知,在这种情况下我不能使用查询。

是否可以使用对象映射器?如果不是,哪一个更有意义:解析响应以获取所需的类实例或在每个项目上调用 objectMapper.load?

【问题讨论】:

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


    【解决方案1】:

    目前AWSDynamoDBObjectMapper不支持批量获取项。如果要使用对象映射器,则需要一次加载一项。

    【讨论】:

      【解决方案2】:

      我通过这样做解决了它,

          let dynamoDBObjectMapper = AWSDynamoDBObjectMapper.defaultDynamoDBObjectMapper()
          let task1 = dynamoDBObjectMapper.load(User.self, hashKey: "rtP1oQ5DJG", rangeKey: nil)
          let task2 = dynamoDBObjectMapper.load(User.self, hashKey: "dbqb1zyUq1", rangeKey: nil)
      
          AWSTask.init(forCompletionOfAllTasksWithResults: [task1, task2]).continueWithBlock { (task) -> AnyObject? in
              if let users = task.result as? [User] {
                  print(users.count)
                  print(users[0].firstName)
                  print(users[1].firstName)
              }
              else if let error = task.error {
                  print(error.localizedDescription)
              }
              return nil
          }
      

      【讨论】:

      • 会不会和在for循环中调用objectmapper.load一样?顺便说一句,我最终做了
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 2016-06-26
      • 1970-01-01
      • 2018-12-07
      • 2022-08-17
      • 1970-01-01
      • 2019-09-24
      相关资源
      最近更新 更多