Avatar ·

Warum ist implizites @objc in Swift 4 veraltet und wie behebt man das?

Hallo zusammen! Ich habe kürzlich mein Projekt von Swift 3 auf Swift 4 aktualisiert (nutze Xcode 9 beta) und bin auf eine Menge Warnungen gestoßen. Der Compiler schreibt so etwas wie: „The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please minimize deprecated @objc inference...“ \n\nFrüher habe ich Code in Swift 3 geschrieben, und meine Selektoren für Buttons, target-action sowie Methoden, die aus Objective-C aufgerufen wurden, funktionierten. Zum Beispiel funktionierte dieser einfache Code problemlos:\n\n```swift\nclass MyViewController: UIViewController {\n @IBOutlet weak var myButton: UIButton!\n \n override func viewDidLoad() {\n super.viewDidLoad()\n myButton.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)\n }\n \n func buttonTapped() {\n print("Button tapped")\n```