我的应用程序严重依赖于即将推出的数据。我想让它在下载数据时运行活动指示器并禁用视图上的用户交互。
完成处理程序完成后有没有办法检查或返回某些内容?
答案 0 :(得分:0)
定义一个属性,它保留完成处理程序,并在获得所有数据时调用它:
var didObtainAllData: (() -> Void)?
func obtainData() {
....
// When data is obtained.
didObtainAllData?()
}
答案 1 :(得分:0)
typealias CompletionHandler = (success:Bool) -> Void
func downloadFileFromURL(url: NSURL,completionHandler: CompletionHandler) {
**download code**
let flag = true
如果下载成功则为true,否则为false
completionHandler(success: flag)
}
如何使用它。
downloadFileFromURL(NSURL(string: "url_str")!, { (success) -> Void in
**When download completes,control flow goes here.**
if success {
} else {
}
})
答案 2 :(得分:0)
你可以写
func processingTask(condition: String, completionHandler:(finished: Bool)-> Void) ->Void {
}
使用
processingTask("test") { (finished) in
if finished {
// To do task you want
}
}