如果完成完成,则为真

时间:2016-09-01 09:28:21

标签: ios swift xcode

我的应用程序严重依赖于即将推出的数据。我想让它在下载数据时运行活动指示器并禁用视图上的用户交互。

完成处理程序完成后有没有办法检查或返回某些内容?

3 个答案:

答案 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
        }
    }
相关问题