Как решить правило неиспользованного параметра SonarQube в дополнительном методе протокола? - PullRequest
0 голосов
/ 05 июня 2019

У меня есть несколько дополнительных методов в протоколе, у которых есть параметры, которые не используются, поскольку он не имеет реализации.

Я не могу найти способ удовлетворить правило 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 Ответ

1 голос
/ 05 июня 2019

Попробуйте сделать методы внутри InfoProtocol как optional, если вы не хотите нигде их реализовывать везде, не хотите давать реализацию по умолчанию с 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 не приводит к compile-time error.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...