我希望此功能在协议中:
func slideToRight(currentViewController viewController: UIViewController, completion: ((Bool)->())? = nil) {
// do some stuff
}
但是当我写这样的协议时:
protocol SomeDelegate {
func slideToRight(currentViewController viewController: UIViewController, completion: ((Bool)->())? = nil)
}
我收到了一个错误:
协议方法中不允许使用默认参数
我知道,我可以用这种方式定义签名:
protocol SomeDelegate {
func slideToRight(currentViewController viewController: UIViewController, completion: ((Bool)->())?)
}
但是,我将无法调用缺少“完成”字样的功能:
slideToRight(currentViewController viewController: vc)
答案 0 :(得分:2)
不幸的是,协议中不允许使用可选参数,但您可以通过创建协议扩展来解决此问题:
jQuery(".bizinfo h4").text(function () {
return jQuery(this).text().replace("test", ", ");
});