У нас есть проект, построенный с использованием Cordova. Однако мы пишем много кода в Swift. Из-за большого количества ошибок заголовка Xcode Bridging Header, нам нужно перезаписать наш AppDelegate.m в Swift.Преобразование объекта Objective-C AppDelegate Класс класса для быстрого класса
Все прошло отлично.
Однако для Кордовы есть плагин для push notifications.
В этом плагине мы установили еще один файл, который относится к категории типа AppDelegate.
В верхней части ее заголовок файла выглядит следующим образом:
@implementation AppDelegate (notification)
Там нет категорий в Swift, есть расширения. Мой вопрос заключается в следующем: при преобразовании этого файла в Swift я должен просто удалить этот файл и добавить его расширение в существующий файл AppDelegate или создать класс AppDelegate + notification.swift и просто написать?
extension AppDelegate {
//code
}
В целом, я немного смущен, почему будет отдельный файл, который добавит функциональность AppDelegate. Почему бы им просто не «расширить» его в первую очередь, и теперь я не уверен, как преобразовать этот файл AppDelegate + notification.m в Swift.
UPDATE
Я удалил файл main.m, в AppDelegate.m/.h, а + notification.m/.h файл AppDelegate и превращали их в соответствующие файлы Swift AppDelegate в новый AppDelegate.swift, и он сработал.
Я нашел этот пост, потому что я пытаюсь выяснить, как именно преобразовать Objective Кордовы -C AppDelegate файл для Swift. Не могли бы вы рассказать о том, как вы это делали? – jcaruso
Просто перепишите методы objc из любых классов делегатов, которые у вас есть как быстрые классы. Они использовали Swizzling, потому что хотели расширить делегат приложения. Вам не нужно использовать это, потому что вы просто поместите все это в свой AppDelegate.swift. Поэтому просто конвертируйте методы в делегатах приложения в один AppDelegate.swift – Aggressor