Как сослаться на делегата swift в приложении c
Я пытаюсь сослаться на делегат быстрого приложения в контроллере представления C, поскольку я хочу отправить данные, помещенные в NSMutableArray
в core data
,
Я импортировал
#import "SPOTEVENT-EventNotificationApp-Bridging-Header.h"
#import "AppDelegate.swift"
в контроллере представления цели C, но всякий раз, когда я пытаюсь создать экземпляр делегата приложения, он выдает ошибку
"Неизвестное имя типа"
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
AppDelegate *appDelegate;
NSManagedObjectContext *context;
2 ответа
Bridging Header
позволяет использовать код Objective-C в Swift. Вам необходимо импортировать Generated Interface Header
использовать Swift-код в Objective-C
В разделе " Настройки сборки " вашей цели найдите Objective-C Generated Interface Header Name
установка. Это нормально <TargetName>-Swift.h
Обычно вы импортируете в .m
файл, чтобы увидеть классы Swift.
#import "MyTarget-Swift.h"
Вам может понадобиться импорт в .h
Если вы принимаете протоколы Swift в OC, но это может привести к циклическим зависимостям с Bridging Header, так что будьте осторожны.
Если AppDelegate
класс все еще не появляется, возможно, вам нужно добавить @objc
к объявлению класса или проверьте, использует ли ваш класс какие-либо функции Swift, которые бы препятствовали экспорту. Вы можете Command-Click
оператор import, чтобы увидеть содержимое заголовка, которое может быть полезно для отладки.
Сделайте этот шаг, чтобы использовать файл swift в файле target-c.
1) #Import "YourProjectName-swift.h" in Objective-C (.m) file
2) Теперь создайте экземпляр AppDelegate, как показано ниже.
AppDelegate *appDel = (AppDelegate*)[[UIApplication sharedApplication] delegate];
Примечание:- вы должны добавить заголовок моста в вашем проекте.