Swift 4にコードを変換しようとしていますが、必要に応じて@objc
を追加しています。 Xcodeは自動的にそれらを修正するのにかなり良い仕事をしていますが、私はいくつかの方法(すべて同じ2つの方法を使用しています)で苦労しています.Xcodeは助けにならないので、ちょうど@objc
をコードのどこかに置きます。インスタンスメソッドフォームの拡張のオーバーライドは、 '@objc'の廃止された推論に依存します
私のViewController
クラスでは、このようなnavbarRightButtonAction(button:)
というメソッドをオーバーライドしています。
Override of instance method 'navbarRightButtonAction(button:)' from extension of PBViewController depends on deprecated inference of '@objc'
は、その後、私たちはこのようになりますPBViewController
クラスでも問題を考えた::
extension PBViewController: PBNavigationBarDelegate {
func navbarRightButtonAction(button: PBAdaptiveButton) {
print("Override this method")
}
}
だから私は@objc func navbarRightButtonAction(button: PBAdaptiveButton)
を追加し、私は警告が言っています場所です
class ViewController: PBViewController {
override func navbarRightButtonAction(button: PBAdaptiveButton) {
...
}
}
それは助けにはならなかった。
それから私は私が@objc protocol PBNavigationBarDelegate
を追加PBNavigationBarDelegate
プロトコル
protocol PBNavigationBarDelegate {
func navbarRightButtonAction(button:PBAdaptiveButton)
}
に見えたが、それはどちらか助けていません。
廃止予定の警告を修正するために何をすべきか他には考えていません。
おかげで、それが働きました。私もこれまでに試したことがあると思うが、今回は私のプロジェクト(cmd + shift + k)をきれいにしてから作業した。 – Codey