【发布时间】:2019-02-20 11:27:58
【问题描述】:
有
var tableView: MyTableView?
tableView?.onGoToA = {
self.goToA()
}
tableView?.onGoToB = {
self.goToB()
}
tableView?.onGoToC = {
self.goToC()
}
对于这种情况有更好的方法还是只使用委托更好的方法?
【问题讨论】:
-
请添加更多上下文和尝试做什么
-
我认为 OP 想知道当一个对象可以发送多个事件时是否应该使用委托或闭包
-
离题,不要在swift代码中使用
; -
如何使用相同的闭包但返回一个参数。
tableView.onGo = { [weak self] item in guard let strongSelf = self else {return} strongSelf.goTo(item) }和func goTo(_ item: "whatever the item type is") { // Do the go logic here } -
事情都是一样的,只是实现它的一种方式,如果你在 cellforRowAt 中使用闭包和委托,你应该注意自我强硬,注意保持周期!!!
标签: ios swift design-patterns delegates closures