同样看过SO和亚马逊的文档,但是找不到任何有关如何使用iOS SDK发出请求的可靠文档,特别是使用Swift。
我认为我需要首先实例化一个AWSDynamoDBClient(https://aws.amazon.com/articles/7439603059327617),但是当我在xcode中工作时,看不到它是一种类型。
老实说,经过这场斗争,我只得到两行代码:
var myDynamoDBPutRequest:AWSDynamoDBPutRequest = AWSDynamoDBPutRequest()
myDynamoDBPutRequest.item = ["fbid": "test"]
我无法弄清楚如何运行它,并怀疑无论如何都要正确设置请求。我也看过PutItemInputs,但不确定它与putRequest.item的区别。如果有人能指出我正确的方向,我会很乐意自己进行调查 - 我只是没有地方去寻找好的文件:/
编辑:
我已经取得了一些进展,但仍然无法弄清楚如何正确创建放置项目输入。这是我现在的代码:
var myPutItemInput:AWSDynamoDBPutItemInput = AWSDynamoDBPutItemInput()
myPutItemInput.tableName = "mytable"
var myDynamoDB = AWSDynamoDB.defaultDynamoDB()
myDynamoDB.putItem(myPutItemInput).continueWithBlock { (task:BFTask!) -> AnyObject! in
if(task.result != nil){
let myPutOutput = task.result as AWSDynamoDBPutItemOutput
println(task.result)
}else{
println("task.result was nil for put item request")
}
return nil
}//end put item task
现在我至少想出了如何执行请求,但结果每次都是nil。
答案 0 :(得分:3)
以下是- putItem
的示例:
let dynamoDB = AWSDynamoDB.defaultDynamoDB()
let putItemInput = AWSDynamoDBPutItemInput()
putItemInput.tableName = "testTableName"
let hashValue = AWSDynamoDBAttributeValue()
hashValue.S = "testPutItem"
let stringValue = AWSDynamoDBAttributeValue()
stringValue.S = "stringValue";
putItemInput.item = [
"hashKey" : hashValue,
"stringKey" : stringValue
]
dynamoDB.putItem(putItemInput).continueWithBlock { (task:AWSTask?) -> AnyObject? in
if(task.error != nil) {
println(task.error)
}
if (task.result != nil) {
let putItemOutput = task.result as AWSDynamoDBPutItemOutput
println(putItemOutput)
}
return nil
}
即使它在Objective-C中,查看integration tests可能有助于了解如何将Amazon DynamoDB与适用于iOS v2的AWS Mobile SDK一起使用。