执行put item请求 - AWS DynamoDB ios SDK

时间:2014-12-12 07:44:45

标签: ios swift amazon-web-services amazon-dynamodb aws-sdk

同样看过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。

1 个答案:

答案 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一起使用。