Да, это возможно, но с некоторыми ограничениями.
Вы можете использовать только те классы, которые унаследованы от NSObject, с открытым атрибутом и помечены @objc. В коде Objective-C вы должны импортировать файл «ProductModuleName-Swift.h», сгенерированный компилятором.
Вот пример класса Swift:
import Foundation
@objc public class ExampleClass: NSObject {
@objc public var someInstanceProperty = "Property"
@objc public func someFunction() {
print("Some function")
}
}
Обратите внимание, что этот класс унаследован от NSObject и имеет атрибуты @objc и public. После команды + B вы можете взглянуть на сгенерированный заголовок моста через редактор Assistance:
Затем вы должны импортировать заголовок моста в ваш класс Objective-C.
#import "ProductModuleName-Swift.h"
И тогда вы можете использовать свой класс Swift в коде Objective-C, как и любой другой класс Objective-C:
__auto_type const someClass = [ExampleClass new];
[someClass someFunction];
NSLog(@"%@", someClass.someInstanceProperty);
Вот дополнительная информация от Apple:
Импорт Swift в Objective-C