我有一个xcworkspace,里面有两个xcode项目(一个是实现所有基本功能的静态库,另一个是使用第一个类的演示项目(-到目前为止,所有代码都是用Objective C编写的。我想要实现的是在静态库中创建一个Swift类,然后从"demo"xcodeproj中的Objective C类访问它。
我已经创建了这个"Test.swift"类和一个自动创建的桥接头(在Build设置中将DefineModule属性更改为YES(,一切都很好——我可以从同一项目中的Obj C类访问它。接下来,我将创建一个新的";DemoTest.swift";"demo"项目中的Swift类,并对Test.Swift进行子类化(有效(。然而,当试图从"demo"项目中的Objective C文件访问此类时,编译器无法识别我的";基本";模块-
In file included from
xxxxx/AppDelegate.m:26:
xxxxx/mpdemo-Swift.h:189:9: fatal error: module 'mpbba' not found
@import mpbba;
~~~~~~~^~~~~
1 error generated.
我的问题是如何将Swift代码导入另一个Objective C模块?
以下是要做的操作:
- 配置Objective-C桥接头
- 点击你的Xcode项目文件
- 单击生成设置
- 找到搜索栏并搜索定义模块
- 将该值更改为"是">
- 搜索产品模块名称
- 将值更改为项目的名称
- 在类中,添加以下内容:#import"YourProjectName Swift.h">
希望这能奏效。如果你还需要什么,请告诉我。