Я пытаюсь медленно перейти из Obj-C в Swift. Мой первый шаг - перенести небольшие простые методы на расширения Swift, поэтому я решил попробовать и перенастроить didRegisterForRemoteNotifications
, но это не сработало, потому что он считает, что этот метод реализован где-то еще в моем коде Objective-C. Это не.Реализация didRegisterForRemoteNotificationsWithDeviceToken в расширении Swift не работает
Я использую Xcode 7.3 (7D175)
Вот некоторые шаги Размножение:
- Создать новый проект Obj-C.
- Создайте новый пустой файл Swift под названием
AppDelegate-Extension.swift
. Это также создает заголовочный файл Bridging. - Добавить
#import AppDelegate.h
в заголовочный файл Briding. Перейти к пустому Swift файл и введите:
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)
Что я делаю неправильно?
EDIT: Некоторые предложения, которые я пробовал:
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)
что вы имеете в виду быстрый заголовочный файл? Вы должны создать класс Bridge и импортировать 'AppDelegate.h' там –
Извините, это именно то, что я имел в виду. Я отредактировал вопрос, чтобы отразить это. – OlivaresF
попытка 'переопределение FUNC приложение (приложение: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {' –