我想将func
作为参数发送给另一个func
,但我知道如果发送的func
具有输入和输出参数,该怎么做:< / p>
aFunc (sentFunc: Int -> String) {
...
}
但我希望实现类似下面的代码,其中发送的函数没有参数:
func firstFunc(<i want to declare paramenter for a function here that itself does not have any parameters>) {
if (servicedCities != nil) {
<execute sent fuction>
} else {
objectMapper().getServicedCitiesifAvailable()
<execute sent fuction>
}
}
调用上述func
的{{1}}应该看起来像
func
答案 0 :(得分:1)
func firstFunc(passedFunc:()->()) {
passedFunc()
}
func secondFunc() {
func myNestedFunction() {
print("hi")
}
firstFunc(myNestedFunction)
}
secondFunc()
将输出
喜
在firstFunc
电话的背景下。
请注意,您必须在()
之后的最后一行省略myNestedFunction
,因为您不想调用该方法,而是传递方法本身。
答案 1 :(得分:0)
func firstFunc(sentFunc: () -> ()) {
sentFunc()
}
或
func firstFunc(sentFunc: Void -> Void) {
sentFunc()
}
答案 2 :(得分:0)
我认为你正在寻找Swift闭包。
选中此Swift closures and functions
func someFunc(paramFunc: () -> ()) {
paramFunc()
}
...
self.someFunc { () -> () in
//Do some code here;
}