我在这里搜索了很多问题,但似乎没有人适合以下问题。
我正在尝试在 Swift 中创建一个块完成。
这是 X 类中的一个可选变量闭包。
var onLogCompletion:((_ logThing:String) -> ())?
这是 X 类中的函数。
func printerCompletion(currentLog:String) -> Void {
//This is giving me an error:
//Cannot call value of non-function type '((String) -> ())?'
!(onLogCompletion(currentLog))
}
从 X 类中,我想像这样调用函数。
printerCompletion("New Log")
在视图控制器中,我想做这样的事情。
let objX = X()
objX.onLogCompletionm { (log) in
print(log)
}
这应该打印
New Log
在 View Controller 文件中。
我有在 Obj-C 中执行此操作的经验,但在 Swift 中没有。
请帮助解决这个问题,如果有更好的方法来解决这个问题。