来自另一个目标的快速伞头

时间:2014-09-26 11:08:19

标签: ios objective-c xcode swift xcode6

我有一个包含多个目标的项目。主要目标是Swift和Objective-C类以及objc文件的组合,它们通过包含ModuleName-Swift.h伞形头来使用Swift类。但是,当我将相同的源文件包含到多个目标时,除了主目标之外,找不到伞头。标头导入中的模块名称对于每个目标应该是不同的。我如何实现这一目标?

更新

到目前为止,除了为所有目标设置相同的产品模块名称之外,我还没有找到任何其他方法。这似乎没有任何副作用。

1 个答案:

答案 0 :(得分:1)

在为我的应用编写今日扩展时遇到同样的问题。 我有一个名为例如Items.swift的文件位于今天的扩展组件和 包含在该目标中。所以我有以下情况:主要项目完全写在Objective-C上 今天的扩展名是在Swift上写的

问题:

我想将文件Items.swift包含到主项目中并使用它

解决方案:

  1. 确保Items.swift包含在主应用目标
  2. 重要( !!! )您应该创建"ProductModuleName"-Bridging-Header.h并在项目文件(Objective-C Bridging Header选项)中添加对此文件的引用,即使您的 主目标仅包含Objective-C代码
  3. 您的Items.swift应该继承自NSObject或其后代
  4. 然后将#import "ProductModuleName-Swift.h"添加到您想要的位置 使用Items.swift并按Build
  5. 最后,你可以转到"ProductModuleName-Swift.h"并确保生成界面,而不是使用你的Objective-C版本

    您可以在Build Settings - >中看到的ProductModuleName;包装 - >产品模块名称