Swift:在GCD完成块中返回布尔值 [英] Swift: Return boolean in GCD Completion Block

查看:132
本文介绍了Swift:在GCD完成块中返回布尔值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个用Swift写的函数。我想要完成块返回一个布尔值。我该怎么做呢?我使用大中央调度。

I have a function written in Swift. I want the completion block to return a boolean. How can I go about doing this? I am using Grand Central Dispatch.

func myFunc() -> Bool 
{
    var success:Bool = false 

    // code here 

    dispatch_async(dispatch_get_main_queue(), { 
        return success
        )}
    )}
}

>

推荐答案

标准为什么处理这个异步性质不是返回值,而是传入完成处理程序:

Standard why of dealing with this async nature is not to return value, but pass in completion handler:

func myFunc(completion:(success: Bool) -> ()) {
    var success:Bool = false

    // code here

    dispatch_async(dispatch_get_main_queue()) {
        completion(success: success)
    }
}

然后使用它:

myFunc({ (success) in
    // ...
})

这篇关于Swift:在GCD完成块中返回布尔值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆