Objective c 关于向swift动态框架中添加目标C代码的说明
我在swift中有一个动态框架,目前正在链接到另一个用Objective C编写的框架中。这很有效,但很烦人,因为Objective C框架实际上只有2个文件,我想知道是否有办法将其引入我的swift框架中 如果这是一个应用程序,我会选择用户桥接头,但swift框架不支持 我的框架称为GDL90,只包含swift文件 我的Objective-C框架包括: GeoidCalculator.h GeoidCalculator.m EGM96数据文件 CORCOEFdata文件 真的很简单-对吗?所以我想看看是否有办法将这些代码添加到我的swift项目中 尝试1-将我的代码添加到伞头中?GDL90.h 我添加了我的文件,并在框架模块“GDL90”中获得了非模块头的警告Include 好吧,这不是掷骰子 尝试2 我想我需要制作一个模块映射文件 因此,我创建了一个名为${SRCROOT}/GDL90/EGM96的目录,并在其中创建了EGM96.module.modulemap 然后在我的一个swift文件中,我导入了似乎找不到的EGM96 在我的构建设置中,我有: “定义模块”已打开,我指向模块映射文件项中的模块映射文件Objective c 关于向swift动态框架中添加目标C代码的说明,objective-c,xcode,swift,frameworks,Objective C,Xcode,Swift,Frameworks,我在swift中有一个动态框架,目前正在链接到另一个用Objective C编写的框架中。这很有效,但很烦人,因为Objective C框架实际上只有2个文件,我想知道是否有办法将其引入我的swift框架中 如果这是一个应用程序,我会选择用户桥接头,但swift框架不支持 我的框架称为GDL90,只包含swift文件 我的Objective-C框架包括: GeoidCalculator.h GeoidCalculator.m EGM96数据文件 CORCOEFdata文件 真的很简单-对吗?所以
我遗漏了什么吗???如果正确创建内部框架,则不需要modulemap文件: 在EGM96项目下创建新的框架目标“EGM96”: 转到GDL90项目->添加新目标->Cocoa Touch框架 输入名称并选择Objective-C作为语言 将目标文件和EGM96的其他来源添加到新目标。 将GeoidCalculator.h添加为公共标题: 将GeoidCalculator.h标头的目标成员身份从“Project”更改为“Public” 将标题导入名为EGM96.h的伞形文件 确保伞头EGM96.h对于EGM96目标是公共的。 向GDL90的目标依赖项添加新框架,并向GDL90的链接二进制文件添加新库。 现在,您可以在EGM96的任何swift文件中导入EGM96: 进口EGM96
module EGM96 {
header "GeoidCalculator.h"
export *
}