4

iOS sdk を使用して、dynamodb から主キーを使用して最大 50 個のアイテムを取得する必要があります。AWSDynamoDB.defaultDynamoDB().batchGetItem でアイテムを取得できましたが、応答でオブジェクト マッパーを使用できるかどうかわかりませんでした。残念ながら、ios の objectmapper クラスには batchGet 関数がありません。私の知る限り、この状況ではクエリを使用できません。

オブジェクトマッパーを使用することはできますか? そうでない場合、応答を解析して目的のクラス インスタンスを取得するか、各項目で objectMapper.load を呼び出すか、どちらがより理にかなっていますか?

4

2 に答える 2

2

現在、AWSDynamoDBObjectMapperアイテムの一括取得には対応していません。オブジェクト マッパーを使用する場合は、一度に 1 つの項目を読み込む必要があります。

于 2016-02-08T19:19:31.757 に答える
0

こうすることで解決しましたが、

    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
    }
于 2016-03-09T14:41:59.540 に答える