Swift 4 में अंतर्निहित @objc को अप्रचलित क्यों किया गया और इसे कैसे ठीक करें?
सभी को नमस्कार! मैंने हाल ही में अपने प्रोजेक्ट को Swift 3 से Swift 4 (Xcode 9 beta का उपयोग करते हुए) में अपडेट किया और मुझे ढेर सारी चेतावनियाँ मिलीं। कंपाइलर कुछ इस तरह लिखता है: «Swift 4 मोड में Swift 3 @objc inference का उपयोग अप्रचलित है। कृपया अप्रचलित @objc inference को कम करें...»
पहले मैं Swift 3 में कोड लिखता था, और मेरे पास बटनों के लिए selectors, target-action, और वे methods जो Objective-C से कॉल होते थे, काम करते थे। उदाहरण के लिए, यह सरल कोड बिना किसी समस्या के काम करता था:
```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")
}
}
```
Swift 4 में अपडेट करने के बाद, मुझे `#selector(buttonTapped)` वाली लाइन पर चेतावनी मिलती है। मैं समझता हूँ कि यह `@objc` inference के नए नियमों से संबंधित है, लेकिन पूरी तरह से समझ नहीं पाया हूँ। क्यों