增加AWS DynamoDB中的Number属性Objective C

我正在努力增加已经保存在我的DynamoDB表中的项目的数字属性值我的代码目前是:

AWSDynamoDBUpdateItemInput *updateItemInput = [AWSDynamoDBUpdateItemInput new]; updateItemInput.tableName = @"Table"; updateItemInput.key= @{ @"KeyPropertyName":@"KeyValue" }; updateItemInput.updateExpression = @"SET(counter = counter + :val)"; updateItemInput.expressionAttributeValues =@{ @":val":@1 }; AWSDynamoDB *dynamoDB = [AWSDynamoDB defaultDynamoDB]; [[dynamoDB updateItem:updateItemInput] continueWithBlock:^id(AWSTask *task) { if (task.error) { NSLog(@"The request failed. Error: [%@]", task.error); } if (task.exception) { NSLog(@"The request failed. Exception: [%@]", task.exception); } if (task.result) { //Do something with result. } return nil; }]; 

我的应用程序总是崩溃,当我不注释掉updateExpression和expressionAttributeValues。 当我创build一个空的我的项目types的实例,并创build一个AWSDynamoDBAttributeValue的实例传入密钥时得到奇怪的结果,我可以达到该块。 有什么build议么? 我也不正确地写我的updateExpression?

我也将添加更新和删除数组/列表中的项目和另一个对象的字典/地图属性。 这将如何不同?

有几件事。 key定义如下:

 @property (nonatomic, strong) NSDictionary<NSString *, AWSDynamoDBAttributeValue *> * _Nullable key; 

您需要将@"KeyValue"replace为AWSDynamoDBAttributeValue一个实例。

expressionAttributeValues定义如下:

 @property (nonatomic, strong) NSDictionary<NSString *, AWSDynamoDBAttributeValue *> * _Nullable expressionAttributeValues; 

您需要将@1replace为AWSDynamoDBAttributeValue的实例。

请确保使用适用于iOS的最新版AWS SDK,以便您可以在头文件中查看generics注释。 它可以帮助您构build适当的请求对象。