gpt4 book ai didi

ios - 来自另一个目标的 Swift 伞头

转载 作者:搜寻专家 更新时间:2023-10-31 23:05:03 25 4
gpt4 key购买 nike

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

更新:

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

最佳答案

我在为我的应用程序编写 Today Extension 时遇到了同样的问题。我有一个名为 Items.swift 的文件,位于 Today 扩展组件中,并且包含在该目标中。所以我有以下情况: 主要项目完全用 Objective-C 编写Today 扩展是用 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

最后,您可以转到 "ProductModuleName-Swift.h" 并确保生成的接口(interface)比您可以使用您的类的 Objective-C 版本

ProductModuleName 你可以在 Build Settings -> Packaging -> Product Module Name 看到

关于ios - 来自另一个目标的 Swift 伞头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26058164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com