我有这个原型的功能:
原文链接:https://www.f2er.com/swift/319067.htmlfunc myFunction(completionHandler:((响应:[NSString:AnyObject]) – > Void)?))
completionHandler原型可以作为闭包或作为函数传递…将其作为闭包传递我知道如何使用此语法定义捕获列表[weak self],但如果不直接定义闭包,我如何定义捕获列表?在函数参数中我想传递一个函数名?
myFunction(anotherFunction)//如何从这里设置捕获列表?
VS
myFunction{ [weak self] (response) in }
“`
编辑 – – –
一个可能的解决方案是将功能代码包装到一个块中,设置捕获列表并执行块…但听起来很奇怪:/
myFunction(anotherFunction) // how to set capture list from here? . . . func anotherFunction(response:[NSString:AnyObject]) { let safeBlock = { [weak self] in { self?.callSomethingSafely() } } safeBlock() }