我有一个动态swift框架,目前连接了另一个用Objective C编写的框架。虽然这个方法可行,但很麻烦,因为Objective C框架实际上只有2个文件。我想知道是否有一种方法将它带入我的swift框架中。
如果这是一个应用程序,我会使用Bridging-Header,但这在swift框架中不支持。
我的框架称为GDL90,仅包含swift文件。
我的Objective-C框架由以下组成:
- GeoidCalculator.h - GeoidCalculator.m - EGM96(数据文件) - CORCOEF(数据文件)
非常简单 - 对吧?所以我想知道是否有一种方法将此代码添加到我的swift项目中。
尝试#1 - 将我的代码添加到“总头文件”中,即GDL90.h
我添加了我的文件,得到警告“在GDL90框架模块内包含非模块化标头”。
那么这就不行。
尝试2
我觉得我需要制作一个模块映射文件。
所以我创建了一个名为${SRCROOT}/GDL90/EGM96的目录,并在其中创建了EGM96.module.modulemap。
如果这是一个应用程序,我会使用Bridging-Header,但这在swift框架中不支持。
我的框架称为GDL90,仅包含swift文件。
我的Objective-C框架由以下组成:
- GeoidCalculator.h - GeoidCalculator.m - EGM96(数据文件) - CORCOEF(数据文件)
非常简单 - 对吧?所以我想知道是否有一种方法将此代码添加到我的swift项目中。
尝试#1 - 将我的代码添加到“总头文件”中,即GDL90.h
我添加了我的文件,得到警告“在GDL90框架模块内包含非模块化标头”。
那么这就不行。
尝试2
我觉得我需要制作一个模块映射文件。
所以我创建了一个名为${SRCROOT}/GDL90/EGM96的目录,并在其中创建了EGM96.module.modulemap。
module EGM96 {
header "GeoidCalculator.h"
export *
}
在我的一个Swift文件中,我有import EGM96
,但似乎找不到。
在我的构建设置中:
Define Modules
已打开,我将指向modulemap
文件从我的模块映射文件项。
我是否漏掉了什么?