我正在并行开发应用程序和框架 . 这个应用程序在objc中,但是当框架在objc中时,使用桥接头来集成Swift classe . 在框架中,我需要从主app中实例化一个Swift类,只知道它的名字 . 要实例化objc类,此解决方案可以正常工作:

Class classToInstantiate = [[NSBundle mainBundle] classNamed:"ClassNameToInstantiate"];
return [classToInstantiate new];

但是对于swift,我需要打开Project-Swift.h,找到该类的前缀并更改名称In Project-Swift:

SWIFT_CLASS("_TtC16PModuleNameClassNameToInstantiate")
@interface ClassNameToInstantiate : NSObject <ApplicationLoaderInterface>

然后我必须写这个:

Class classToInstantiate = [[NSBundle mainBundle] classNamed:"_TtC16PModuleNameClassNameToInstantiate"];
return [classToInstantiate new];

你知道前缀“_TtC16”是不变的还是一直在改变?