Ios Swift相当于;[[transferManager下载:下载请求]使用块“^id(AWSTask*任务)”继续执行器:[AWSEcecutor Main ThreadExecutor];
是否有Swift 3.0相当于: [[transferManager下载:下载请求] 继续执行器:[AWSExecutor Main ThreadExecutor] withBlock:^id(AWSTask*任务) 下面是Objective-C实现(在上,我找不到Swift示例) Objective-C代码(来自AWS文档):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
[[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
}
}