Swift的模拟Java的Runnable

时间:2016-08-29 09:47:29

标签: ios swift

令人惊讶的是,谷歌搜索没有回复我。 我在Android上做了什么:

void doSomethng(Runnable r){
r.run();
}

这只是在发送类的上下文中传递一些代码块,然后按需执行此块。 我如何使用Swift for iOS做同样的事情?

2 个答案:

答案 0 :(得分:0)

您可以使用闭包执行此操作:

func doSomethng(r: () -> ()) {
    r()
}

答案 1 :(得分:0)

获取没有参数的块且没有返回值的函数的语法如下:

func doSomethng(runnable: () -> ()){
   runnable()
}

如果要广泛使用此类块,可以为它定义一种特殊类型:

typealias Runnable = () -> ()

func doSomethng2(runnable: Runnable){
    runnable()
}

我还建议您查看此网站fuckingclosuresyntax.com,以便快速了解Swift中阻止/关闭语法的想法。

如果您需要在单独的线程中运行块,请检查GCD