我有一个包含多个目标的项目。主要目标是Swift和Objective-C类以及objc文件的组合,它们通过包含ModuleName-Swift.h伞形头来使用Swift类。但是,当我将相同的源文件包含到多个目标时,除了主目标之外,找不到伞头。标头导入中的模块名称对于每个目标应该是不同的。我如何实现这一目标?
更新
到目前为止,除了为所有目标设置相同的产品模块名称之外,我还没有找到任何其他方法。这似乎没有任何副作用。
答案 0 :(得分:1)
在为我的应用编写今日扩展时遇到同样的问题。 我有一个名为例如Items.swift的文件位于今天的扩展组件和 包含在该目标中。所以我有以下情况:主要项目完全写在Objective-C上 今天的扩展名是在Swift上写的
我想将文件Items.swift包含到主项目中并使用它
Items.swift
包含在主应用目标"ProductModuleName"-Bridging-Header.h
并在项目文件(Objective-C Bridging Header选项)中添加对此文件的引用,即使您的
主目标仅包含Objective-C代码Items.swift
应该继承自NSObject或其后代#import "ProductModuleName-Swift.h"
添加到您想要的位置
使用Items.swift
并按Build 最后,你可以转到"ProductModuleName-Swift.h"
并确保生成界面,而不是使用你的Objective-C版本
您可以在Build Settings - >中看到的ProductModuleName;包装 - >产品模块名称