我是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究竟是什么?我们从哪里获得这些信息?
提前感谢任何可以帮助我解决此问题的人。
答案 0 :(得分:0)
你应该使用
let listTablesOutput = task.result as! AWSDynamoDBListTablesOutput
而不是
let listTablesOutput = task.result as AWSDynamoDBListTablesOutput
,
编译器应警告您,如果使用最新版本的Xcode 6编译它。
用Swift编写的DynamoDB Sample Project可能会有所帮助。