2

翻遍了 SO 和亚马逊的文档,但找不到任何关于如何使用 iOS SDK 发出 put 请求的可靠文档,特别是使用 Swift。

我收集到我需要先实例化一个 AWSDynamoDBClient ( https://aws.amazon.com/articles/7439603059327617 ),但是当我在 xcode 中工作时,没有看到它作为一种类型出现。

老实说,经过所有这些努力,我只得到了两行代码:

var myDynamoDBPutRequest:AWSDynamoDBPutRequest = AWSDynamoDBPutRequest()
    myDynamoDBPutRequest.item = ["fbid": "test"]

我不知道如何运行它,并且怀疑请求是否设置正确。我还查看了 PutItemInputs,但不确定它与 putRequest.item 有何不同。如果有人能指出我正确的方向,我会很乐意自己进行调查 - 我只是没有地方寻找好的文档了:/

编辑:

我已经取得了一些进展,但仍然无法弄清楚如何正确创建 put item input 。这是我现在拥有的代码:

 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

现在我至少想出了如何执行请求,但每次结果都是零。

4

1 回答 1

5

这是一个例子- 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 中,但查看集成测试可能有助于了解如何将 Amazon DynamoDB 与适用于 iOS v2 的 AWS 移动开发工具包一起使用。

于 2014-12-12T19:45:33.153 回答