ios - 更新 DynamoDB (Swift) 中特定项目的属性

标签 ios swift amazon-web-services amazon-dynamodb

我想从我的 DynamoDB 表中获取一个特定的项目,该项目由其唯一的分区键定义,这是一个我已传递到方法中的字符串。然后我想将其中一个字符串属性从“false”更改为“true”。

这是我目前的代码

var updatedValue: AWSDynamoDBAttributeValue = AWSDynamoDBAttributeValue()
updatedValue.S = "true"

var updateInput: AWSDynamoDBUpdateItemInput = AWSDynamoDBUpdateItemInput()
updateInput.tableName = "knot-listings"
updateInput.key = ["ID": self.ID]
var valueUpdate: AWSDynamoDBAttributeValueUpdate = AWSDynamoDBAttributeValueUpdate()
valueUpdate.value = updatedValue
valueUpdate.action = AWSDynamoDBAttributeAction.Put
updateInput.attributeUpdates = ["Updated": valueUpdate]
updateInput.returnValues = AWSDynamoDBReturnValue.UpdatedNew

self.dynamoDB.updateItem(updateInput).waitUntilFinished()

self.ID 指的是唯一标识符字符串。我想选择一个名为“sold”的属性并将其值更改为“true”。

最佳答案

我实际上使用了您的代码作为指南。

不要使用

self.dynamoDB.updateItem(updateInput).waitUntilFinished()

而是相反

dynamoDB.updateItem(updateInput).continueWithExecutor(AWSExecutor.mainThreadExecutor(), withBlock: { (task:AWSTask!) -> AnyObject! in
    if (task.error == nil) {


    }

    return nil

})

总的来说

    var updatedValue: AWSDynamoDBAttributeValue = AWSDynamoDBAttributeValue()
    updatedValue.S = "true"

    var updateInput: AWSDynamoDBUpdateItemInput = AWSDynamoDBUpdateItemInput()
    updateInput.tableName = "knot-listings"
    updateInput.key = ["ID": self.ID]
    var valueUpdate: AWSDynamoDBAttributeValueUpdate = AWSDynamoDBAttributeValueUpdate()
    valueUpdate.value = updatedValue
    valueUpdate.action = AWSDynamoDBAttributeAction.Put
    updateInput.attributeUpdates = ["attributeName": newAttributeValue]
    updateInput.returnValues = AWSDynamoDBReturnValue.UpdatedNew


    dynamoDB.updateItem(updateInput).continueWithExecutor(AWSExecutor.mainThreadExecutor(), withBlock: { (task:AWSTask!) -> AnyObject! in
    if (task.error == nil) { 
    }

    return nil

})

关于ios - 更新 DynamoDB (Swift) 中特定项目的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34834452/

相关文章:

ios - 为什么状态栏与半透明导航栏混在一起

ios - 歌曲仅在高级 Spotify 帐户中播放

ios - 打开 Thread Sanitizer 会产生信号 SIGABRT

ios - WKWebView:html 内容中的 mailto 链接未打开邮件应用程序

ios - 被admob广告单元ID中的 "/"和 ":"搞糊涂了

ios - 无法初始化测试包 xcode 单元测试

ios - _ArrayType 在 Swift 3 中去了哪里?

linux - 如何创建 ftp 用户以授予 amazon ec2 ubuntu AMI 访问/var/www 的权限

python - SageMaker 线性学习器结果不准确?

amazon-web-services - 使用 kms 数据资源的 terraform 代码的无效 arn 错误