मैं धीरे-धीरे ओबीजे-सी से स्विफ्ट में माइग्रेट करने की कोशिश कर रहा हूं। मेरा पहला कदम स्विफ्ट एक्सटेंशन के लिए छोटे, सरल तरीकों को माइग्रेट करना है, इसलिए मैंने didRegisterForRemoteNotifications
को आजमाने और माइग्रेट करने का निर्णय लिया लेकिन यह काम नहीं किया क्योंकि ऐसा लगता है कि विधि मेरे उद्देश्य-सी कोड में कहीं और लागू की गई है। यह नहीं।कार्यान्वयन किया गया रजिस्ट्रारफॉररोटोट नोटिफिकेशनविथडिवाइस टोकन एक स्विफ्ट एक्सटेंशन में काम नहीं करता
मैं Xcode 7.3 (7D175)
उपयोग कर रहा हूँ यहाँ कुछ प्रजनन चरणों है:
- एक नया Obj सी परियोजना बनाएँ।
AppDelegate-Extension.swift
नामक एक नई खाली स्विफ्ट फ़ाइल बनाएं। यह एक ब्रिजिंग हेडर फ़ाइल भी बनाता है।- ब्राइडिंग हेडर फ़ाइल में
#import AppDelegate.h
जोड़ें। खाली स्विफ्ट फ़ाइल और प्रकार पर जाएं:
extension AppDelegate { public func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { } }
इस संकलक करने के लिए कारण बनता है शिकायत करने के लिए:
method 'application(_:didRegisterForRemoteNotificationsWithDeviceToken:)' with Objective-C selector 'application:didRegisterForRemoteNotificationsWithDeviceToken:' conflicts with previous declaration with the same Objective-C selector public func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { ^ __ObjC.AppDelegate:38:17: note: 'application' previously declared here public func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData)
क्या मैं गलत कर रहा हूँ?
संपादित करें: कुछ सुझाव है कि मैं कोशिश की है:
Add
override
to the method declaration so it readsoverride public ...
यह (मूल त्रुटि के अलावा) निम्नलिखित त्रुटि देता है
error: method does not override any method from its superclass override public func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData)
स्विफ्ट हेडर फ़ाइल का क्या मतलब है? आपको ब्रिज क्लास बनाना चाहिए और अपना 'AppDelegate.h' आयात करना चाहिए –
क्षमा करें, यही मेरा मतलब है। मैंने इसे प्रतिबिंबित करने के लिए प्रश्न संपादित किया है। – OlivaresF
कोशिश 'ओवरराइड समारोह आवेदन (आवेदन: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {' –