J'essaie de convertir mon code (écrit en Swift 3) en Swift 4, pour cela j'ajoute @objc
si nécessaire. Xcode a fait du bon boulot pour les corriger automatiquement mais je me bats avec quelques uns (tous utilisant les mêmes 2 méthodes), où Xcode ne peut pas aider, il met juste @objc
quelque part dans mon code.La substitution de l'extension de la méthode d'instance dépend de l'inférence obsolète de '@objc'
Je remplace une méthode appelée navbarRightButtonAction(button:)
comme ceci dans ma classe ViewController
.
class ViewController: PBViewController {
override func navbarRightButtonAction(button: PBAdaptiveButton) {
...
}
}
C'est là que je reçois l'avertissement disant:
Override of instance method 'navbarRightButtonAction(button:)' from extension of PBViewController depends on deprecated inference of '@objc'
Alors je pensais que le problème nous être dans la classe PBViewController
qui ressemble à ceci:
extension PBViewController: PBNavigationBarDelegate {
func navbarRightButtonAction(button: PBAdaptiveButton) {
print("Override this method")
}
}
J'ajouté @objc func navbarRightButtonAction(button: PBAdaptiveButton)
mais ça n'a pas aidé.
Puis j'ai regardé dans le protocole PBNavigationBarDelegate
protocol PBNavigationBarDelegate {
func navbarRightButtonAction(button:PBAdaptiveButton)
}
J'ai ajouté @objc protocol PBNavigationBarDelegate
, mais il n'a pas aidé non plus.
Je n'ai aucune autre idée de ce qu'il faut faire pour réparer l'avertissement de dépréciation.
Merci cela a fonctionné. Je pense que j'ai déjà essayé ça mais cette fois j'ai nettoyé mon projet (cmd + shift + k) et ça a marché. – Codey