Pourquoi l'inférence implicite @objc est-elle dépréciée dans Swift 4 et comment y remédier ?
Bonjour à tous ! J'ai récemment mis à jour mon projet de Swift 3 vers Swift 4 (j'utilise Xcode 9 beta) et j'ai rencontré un tas d'avertissements. Le compilateur écrit quelque chose comme : « The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please minimize deprecated @objc inference... »
Avant, j'écrivais du code en Swift 3, et mes selectors pour les boutons, target-action, ainsi que les méthodes appelées depuis Objective-C fonctionnaient. Par exemple, ce code simple fonctionnait sans problème :
```swift
class MyViewController: UIViewController {
@IBOutlet weak var myButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
myButton.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
}
func buttonTapped() {
print("Button tapped")
}
}
```
Après la mise à jour vers Swift 4, je reçois un avertissement sur la ligne avec `#selector(buttonTapped)`. Je comprends que cela est lié aux nouvelles règles d'inférence de `@objc`, mais je ne maîtrise pas complètement le sujet. Pourquoi