【发布时间】:2016-09-29 00:37:59
【问题描述】:
在包含另一个函数的函数中调用 completionHandler() 的正确方法是什么?基本上,我想等到嵌入函数完成后再调用completionHandler。
func somefunc {
transferManager?.download(downloadRequest).continue( {(task: AWSTask) -> AnyObject! in
// Your handler code here
if (task.error != nil) {
print("- Error while downloading!")
print(task.error)
}
else if (task.result != nil) {
//let downloadOutput: AWSS3TransferManagerDownloadOutput = task.result as! AWSS3TransferManagerDownloadOutput
do {
let dFile = try NSString(contentsOf: downloadingFileURL as URL, encoding: String.Encoding.utf8.rawValue)
print(dFile)
modelsParseCSV(contentsOfURL: downloadingFileURL)
}
catch {
print("- Error: Unable to retrieve contents of csv file")
}
}
else {
print("- Uknown error: AWSS3 get file")
}
print("------------ AWS Get Models File End ----------")
return nil
})
completionHandler()
}
【问题讨论】:
-
将
completionHandler()移动到return nil上方的行会成功吗? -
更好 - 将调用
return nil替换为调用completionHandler()。但是completionHandler是在哪里定义的? -
对不起,上面定义了代码完成处理程序,我只是未能将其复制进去。我看到如果我在 return nil 之前调用 completionHandler,则不会调用 return nil。如果我删除 return 语句,它会引发错误...
标签: swift function completionhandler