增加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;
您需要将@1
replace为AWSDynamoDBAttributeValue
的实例。
请确保使用适用于iOS的最新版AWS SDK,以便您可以在头文件中查看generics注释。 它可以帮助您构build适当的请求对象。