我正在构建一个框架,其中我需要导入一些objective-c框架。现在我需要导入“Beaconstac.framework”,但是我们不能在Swift框架项目中添加桥接头。如何在我的项目中使用这个框架?我试过:导入Beaconstac但编译器报告错误“无此类模块”有没有其他方法可以做到这一点?
xcitsw881#
将现有Obj C框架纳入Swift框架项目的步骤
假设我们在swift中创建一个“SwiftProj.framework”项目,它在内部必须使用ObjectiveC“ObjC.framework”1.将ObjC.framework放入Frameworks文件夹,通过Linked Frameworks and Libraries链接到Swift框架项目,并在同一级别创建一个module.modulemap文件。1.在modul.modulemap中
module ObjC{ header "ObjC.framework/Headers/ClassA.h" export * }
1.创建xcconfig文件(文件->新建->iOS->其他->配置设置文件)1.在xcconfig文件中
SWIFT_INCLUDE_PATHS = $(SRCROOT)/ MODULEMAP_PRIVATE_FILE = $(SRCROOT)/module.modulemap
现在您可以在SwiftProj.framework中访问ObjC.ClassA
vptzau2j2#
创建一个名为module.modulemap的文件,并包含以下内容:
module.modulemap
module ObjCFrameworkName { header "ObjCFrameworkName.framework/Headers/ObjCFrameworkNameUmbrellaHeader.h" export * }
请注意,您需要有正确的路径到您的Obj-C框架的伞形标头,这可能与上面的示例中列出的略有不同。如果你仍然被卡住了,我强烈建议你看看this project。
weylhg0b3#
您需要在伞头中导入Beaconstac框架。也就是说,如果你通常在Obj-C桥接头中使用#import <Beaconstac/Beaconstac.h>,那么对于一个框架,你需要把它放在伞形头中。有关详细信息,请参阅Apple文档中的本章:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-ID130
#import <Beaconstac/Beaconstac.h>
3条答案
按热度按时间xcitsw881#
将现有Obj C框架纳入Swift框架项目的步骤
假设我们在swift中创建一个“SwiftProj.framework”项目,它在内部必须使用ObjectiveC“ObjC.framework”
1.将ObjC.framework放入Frameworks文件夹,通过Linked Frameworks and Libraries链接到Swift框架项目,并在同一级别创建一个module.modulemap文件。
1.在modul.modulemap中
1.创建xcconfig文件(文件->新建->iOS->其他->配置设置文件)
1.在xcconfig文件中
现在您可以在SwiftProj.framework中访问ObjC.ClassA
vptzau2j2#
创建一个名为
module.modulemap
的文件,并包含以下内容:请注意,您需要有正确的路径到您的Obj-C框架的伞形标头,这可能与上面的示例中列出的略有不同。
如果你仍然被卡住了,我强烈建议你看看this project。
weylhg0b3#
您需要在伞头中导入Beaconstac框架。也就是说,如果你通常在Obj-C桥接头中使用
#import <Beaconstac/Beaconstac.h>
,那么对于一个框架,你需要把它放在伞形头中。有关详细信息,请参阅Apple文档中的本章:
https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-ID130