我在协议中有一些可选方法,这些方法的参数由于没有实现而未被使用。
我无法找到一种方法来满足SonarQube规则“删除未使用的参数”,而又不会摆脱该参数。有任何线索吗?
public protocol InfoProtocol {
func getInfo(viewController: UIViewController)
func setInfo(viewController: UIViewController)
}
public extension InfoProtocol {
func getInfo(viewController: UIViewController) {
// default implementation
}
func setInfo(viewController: UIViewController) {
// default implementation
}
}
答案 0 :(得分:1)
尝试将InfoProtocol
中的方法制作为 optional
,以防万一您不想在任何地方实现它们,也不想使用{{1}提供任何默认实现},即
protocol extension
用法:
@objc protocol InfoProtocol {
@objc optional func getInfo(viewController: UIViewController)
@objc optional func setInfo(viewController: UIViewController)
}
在上面的代码中,由于class ViewController: UIViewController, InfoProtocol {
override func viewDidLoad() {
super.viewDidLoad()
}
}
中的方法是InfoProtocol
,所以不在optional
中实现它们不会抛出任何ViewController
。