我有一个swift
项目,并且在那里使用Amazon Web Services。
我有一个负责将图像上传到我的S3
存储桶的函数,在Swift 2.2中它运行良好,代码如下:
let credentialsProvider = AWSCognitoCredentialsProvider(regionType:CognitoRegionType,
identityPoolId:CognitoIdentityPoolId)
let configuration = AWSServiceConfiguration(region:CognitoRegionType, credentialsProvider:credentialsProvider)
AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration
let uploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest.body = NSURL(string: "file://"+pathToFile)
uploadRequest.key = NSProcessInfo.processInfo().globallyUniqueString + "." + ext
uploadRequest.bucket = S3BucketName
uploadRequest.contentType = contentType + ext
let transferManager = AWSS3TransferManager.defaultS3TransferManager()
transferManager.upload(uploadRequest).continueWithBlock { (task) -> AnyObject! in
if (task.completed) {
...
现在,升级到Swift 3之后,我有了:
let credentialsProvider = AWSCognitoCredentialsProvider(regionType:CognitoRegionType,
identityPoolId:CognitoIdentityPoolId)
let configuration = AWSServiceConfiguration(region:CognitoRegionType, credentialsProvider:credentialsProvider)
AWSServiceManager.default().defaultServiceConfiguration = configuration
let uploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest?.body = URL(string: "file://"+pathToFile)
uploadRequest?.key = ProcessInfo.processInfo.globallyUniqueString + "." + ext
uploadRequest?.bucket = S3BucketName
uploadRequest?.contentType = contentType + ext
let transferManager = AWSS3TransferManager.default()
transferManager?.upload(uploadRequest).continueWithBlock { (task) -> AnyObject! in
if (task.isCompleted) {
现在,在最后一条语句中transferManager?.upload(uploadRequest).continueWithBlock
抛出一个错误,指出
'continueWithBlock' has been renamed to 'continue(_:)'
因此,我遵循他们的建议并将其更改为:
transferManager?.upload(uploadRequest).continue {
但这给我抛出了一个错误:
Ambigous use of continue
可用的方法在这里:
但我不确定在这种情况下可以使用哪一个。你能帮我吗?
好的,我发现了这个问题,它比我想象的要容易...在这里提到:https : //github.com/aws/aws-sdk-ios/issues/473并说要更改
transferManager?.upload(uploadRequest).continue { ... }
至
transferManager?.upload(uploadRequest).continue ({ ... })
在这种情况下,方法命名确实很烦人,但可以。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句