在此先感谢您的帮助。我正在尝试使用 AWS iOS SDK (Swift) 从一个 DynamoDb 表中获取批处理项目(加载多个)项目。我可以使用 Block 语法加载一项,但我需要加载 10 项或更多项。我不想使用 10 个 Block 调用来单独加载它们。我试图遵循附加的 stackoverflow 链接(其中给出了类似的解决方案),但我收到以下编译器错误消息。我来自 Java 背景,因此也可能是语法问题。这是加载多个项目的正确方法吗?我不想使用低级 API。任何帮助,我哪里出错了。谢谢。
aws dynamodb how to use object mapper with batch get in ios
let dynamoDBObjectMapper = AWSDynamoDBObjectMapper.default()
var tasksList = Array<AWSTask<AnyObject>>()
for i in 1...10 {
tasksList.append(dynamoDBObjectMapper.load(AWSCards.self, hashKey: "SH_"+String(i), rangeKey: nil))
}
AWSTask.init(forCompletionOfAllTasksWithResults: tasksList).continueWithBlock { (task) -> AnyObject? in
if let cards = task.result as? [AWSCards] {
print(cards.count)
}
else if let error = task.error {
print(error.localizedDescription)
}
return nil
}
最佳答案
尝试使用以下代码(Swift 4.1,2018 年 2 月 9 日):
let dynamoDBObjectMapper = AWSDynamoDBObjectMapper.default()
var tasksList = Array<AWSTask<AnyObject>>()
for i in 1...10 {
tasksList.append(dynamoDBObjectMapper.load(AWSCards.self, hashKey: "SH_"+String(i), rangeKey: nil))
}
AWSTask<AnyObject>.init(forCompletionOfAllTasksWithResults: tasksList).continueWith { (task) -> Any? in
if let cards = task.result as? [AWSCards] {
print(cards.count)
}
else if let error = task.error {
print(error.localizedDescription)
}
return nil
}
关于ios - aws dynamodb 如何在 ios swift 中使用对象映射器和批处理获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44004055/