如何通过可选协议方法解决SonarQube未使用的参数规则?

时间:2019-06-05 14:49:22

标签: ios swift sonarqube

我在协议中有一些可选方法,这些方法的参数由于没有实现而未被使用。

我无法找到一种方法来满足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
    }

} 

1 个答案:

答案 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