AWS Swift入门(主要问题)

时间:2015-08-22 23:02:24

标签: ios swift amazon-web-services

我是Swift编程的新手,也是开发移动应用程序的新手。我尝试按照以下入门指南进行操作:https://github.com/aws/aws-sdk-ios

我目前正在尝试创建的应用程序组件创建用户帐户,并允许用户登录。

我已经关注了自述文件,但是当我到达以下部分代码来调用AWS时:

let credentialsProvider = AWSCognitoCredentialsProvider(
    regionType: CognitoRegionType,
    identityPoolId: CognitoIdentityPoolId)
let configuration = AWSServiceConfiguration(
    region: DefaultServiceRegionType,
    credentialsProvider: credentialsProvider)
AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration
let dynamoDB = AWSDynamoDB.defaultDynamoDB()
let listTableInput = AWSDynamoDBListTablesInput()
dynamoDB.listTables(listTableInput).continueWithBlock{ (task: AWSTask!) -> AnyObject! in
    let listTablesOutput = task.result as AWSDynamoDBListTablesOutput

    for tableName : AnyObject in listTablesOutput.tableNames {
        println("\(tableName)")
    }

    return nil
}

我尝试运行我的程序,所有内容都会编译,但会停在该行: let listTablesOutput = task.result as AWSDynamoDBListTablesOutput

当我说停止时,我的意思是我得到了一个

  

主题6:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)

总的来说,我花了几个小时阅读文档,但它无法回答我的任何问题。我们是否需要使用DynamoDB来允许用户创建帐户并登录?如果是这样,Cognito究竟是为了什么?

对于上面代码中显示的变量,certProvider究竟是什么?我们从哪里获得这些信息?

提前感谢任何可以帮助我解决此问题的人。

1 个答案:

答案 0 :(得分:0)

你应该使用

let listTablesOutput = task.result as! AWSDynamoDBListTablesOutput

而不是

let listTablesOutput = task.result as AWSDynamoDBListTablesOutput

编译器应警告您,如果使用最新版本的Xcode 6编译它。

用Swift编写的DynamoDB Sample Project可能会有所帮助。