当存在多个具有通用代码的目标时,我无法生成使用 ObjC 中的 Swift 类所需的 swift 标头。
我创建了两个目标My OSX App和My iOS App。这些目标共享 ObjC 类调用 Swift 类的通用代码。
正如同一项目中的 Swift 和 ObjC中所述,我可以添加#import "My_iOS_App-Swift.h"到我的 ObjC 类并从My iOS App目标编译它。
但是,这不会从My OSX App目标编译,因为包含需要与模块名称匹配。它正在寻找#import "My_OSX_App-Swift.h"但公共代码不使用该包含。
在多个目标之间共享的代码中混合/匹配 Swift/ObjC 的正确方法是什么?我可以手动更改每个目标以使用 common MyApp-Swift.h,但这感觉不对并且可能会导致其他问题。
将“构建设置”中的“产品模块名称”设置设置为在模块中保持相同
例如:$(PROJECT_NAME)
或者,如果您有针对不同目标的手表扩展,例如:Main_App 和 Watchkit,请使用固定名称
这会导致生成的 ###-Swift.h 文件在所有模块中具有相同的名称。这也消除了添加/检查预处理器微处理器的需要。
从:Objective C 到具有多个目标的 Swift 头文件
| 归档时间: |
|
| 查看次数: |
1479 次 |
| 最近记录: |