Ios Swift相当于;[[transferManager下载:下载请求]使用块“^id(AWSTask*任务)”继续执行器:[AWSEcecutor Main ThreadExecutor];

Ios Swift相当于;[[transferManager下载:下载请求]使用块“^id(AWSTask*任务)”继续执行器:[AWSEcecutor Main ThreadExecutor];,ios,objective-c,swift,amazon-web-services,amazon-s3,Ios,Objective C,Swift,Amazon Web Services,Amazon S3,是否有Swift 3.0相当于: [[transferManager下载:下载请求] 继续执行器:[AWSExecutor Main ThreadExecutor] withBlock:^id(AWSTask*任务) 下面是Objective-C实现(在上,我找不到Swift示例) Objective-C代码(来自AWS文档): [[transferManager download:downloadRequest] continueWithExecutor:[AWSExecutor m

是否有Swift 3.0相当于:

[[transferManager下载:下载请求] 继续执行器:[AWSExecutor Main ThreadExecutor] withBlock:^id(AWSTask*任务)

下面是Objective-C实现(在上,我找不到Swift示例)

Objective-C代码(来自AWS文档):

     [[transferManager download:downloadRequest] continueWithExecutor:[AWSExecutor mainThreadExecutor] withBlock:^id(AWSTask *task) {

     NSLog(@"Task is continuing..");

     if (task.error){
     if ([task.error.domain isEqualToString:AWSS3TransferManagerErrorDomain]) {
     switch (task.error.code) {
     case AWSS3TransferManagerErrorCancelled:
     case AWSS3TransferManagerErrorPaused:
     break;

     default:
     NSLog(@"Error: %@", task.error);
     break;
     }
     } else {
     // Unknown error.
     NSLog(@"Error: %@", task.error);
     }
     }

     if (task.result) {
     // File downloaded successfuly
     NSLog(@"File downloaded successfuly");
     AWSS3TransferManagerDownloadOutput *downloadOutput = task.result;

     // Put this in hte right place
     //self.imageView.image = [UIImage imageWithContentsOfFile:downloadingFilePath];

     //File downloaded successfully.
     }
     return nil;
     }];

它应该是
transferManager.downloadRequest.continueWithBlock({(任务)->AnyObject!in

您还可以找到Swift翻译:


你解决了吗?关于你的代码,Swift 3版本似乎还不存在,但你应该很容易地翻译Swift版本。是的,我翻译了。我以与你类似的方式翻译了它。谢谢你的回答。很高兴提供帮助,祝你的项目好运。
func download(downloadRequest: AWSS3TransferManagerDownloadRequest) {
        switch (downloadRequest.state) {
        case .NotStarted, .Paused:
            let transferManager = AWSS3TransferManager.defaultS3TransferManager()
            transferManager.download(downloadRequest).continueWithBlock({ (task) -> AnyObject! in
                if let error = task.error {
                    if error.domain == AWSS3TransferManagerErrorDomain as String
                        && AWSS3TransferManagerErrorType(rawValue: error.code) == AWSS3TransferManagerErrorType.Paused {
                            print("Download paused.")
                    } else {
                        print("download failed: [\(error)]")
                    }
                } else if let exception = task.exception {
                    print("download failed: [\(exception)]")
                } else {
                    dispatch_async(dispatch_get_main_queue(), { () -> Void in
                        if let index = self.indexOfDownloadRequest(self.downloadRequests, downloadRequest: downloadRequest) {
                            self.downloadRequests[index] = nil
                            self.downloadFileURLs[index] = downloadRequest.downloadingFileURL

                            let indexPath = NSIndexPath(forRow: index, inSection: 0)
                            self.collectionView.reloadItemsAtIndexPaths([indexPath])
                        }
                    })
                }
                return nil
            })

            break
        default:
            break
        }
    }