2016-10-04 5 views
0

나는 약간 스위프트 2.2에, 나는이 같은 코드를 가지고, 이전 스위프트 3의 완료 핸들러를 사용하는 방법에 대한 혼란 스러워요 :CompletionHandler 스위프트 3

transferUtility.uploadFile(tmpFileURL, bucket: bucket, key: key, contentType: contentType, expression: nil, completionHander: { (task, error) in 
        self.uploadCompletionHandler(task, transferError: error) 
}) 

을 어떻게 할 수 스위프트 3 I 포트이?

내가 말한다 오류가 Cannot convert value of type '(AWSS3TransferUtilityUploadTask, NSError) ->()' to expected argument type 'AWSS3TransferUtilityUploadCompletionHandlerBlock?'

사람이 잘못 될 수 있는지 알고 있나요?

답변

0

Swift 3은 자동 캐스팅을 허용하지 않으므로 AWSS3TransferUtilityUploadCompletionHandlerBlock의 서명을 확인하십시오. Swift 3에서는 다른 서명으로 completionBlock을 정의 할 수 없으므로 ? and !도 확인하십시오.

+0

그것은'을 UploadFile FUNC 열려 (_ fileURL : URL, 버킷 : 문자열, 키 : 문자열, ContentType을 : 문자열 표현 : AWSS3TransferUtilityUploadExpression? completionHander completionHandler : AWSS3.AWSS3TransferUtilityUploadCompletionHandlerBlock = 전무) -> AWSTask ' – hockeybro

+0

여기에'AWS3TransferUtilityUploadCompletionHandlerBlock'입니다 :'공공 typealias AWSS3TransferUtilityUploadCompletionHandlerBlock = (AWSS3TransferUtilityUploadTask, 오류?) -> Swift.Void ' – hockeybro

+0

시도'(작업, 오류?)' –