代码之家  ›  专栏  ›  技术社区  ›  Nitish

将objective-c框架转换为仍显示objective-c函数的swift头文件

  •  3
  • Nitish  · 技术社区  · 6 年前

    我把我的全部 Objective-C 框架到 Swift . 在构建之后,当我检查框架的头文件时,它仍然显示旧的 Objective-c 功能。
    我删除了所有 目标C 来自框架项目的文件。我试过清理和建设这个项目。但没有成功。

    4 回复  |  直到 6 年前
        1
  •  1
  •   Jacob M. Barnard    6 年前

    您从xcode项目中删除了objective-c文件,但是否也从文件系统和您可能使用的任何源代码管理中删除了它们?

    此外,即使在将库/头文件从 项目导航器 在xcode中。

    只要确保搜索路径不查找旧的obj-c内容。注意递归搜索,比如 MyXcodeProject/** . 这个 ** 将递归搜索所有子文件夹及其子文件夹以查找要包含的内容。

    如果可以,最好直接在搜索路径中指定文件夹。如果你知道你不需要搜索路径,你可以把它们全部清除。

    enter image description here

    …但是,您可能希望保留默认排除:

    enter image description here

        2
  •  0
  •   Ali Ashtiani    6 年前

    记住,不能在objective-c中对swift类进行子类划分。 因此,您迁移的类不能有任何objective-c 子类。

    将类迁移到swift后,必须删除相应的 在生成之前从目标中生成.m文件以避免重复的符号 错误。

    要使swift类在objective-c中可用,请使其成为后代 属于目标C类。

    命令单击swift类名以查看其生成的标题。

    选项单击符号可查看有关它的隐式信息,如 类型、属性和文档注释。

    来自: https://developer.apple.com/documentation/swift/migrating_your_objective-c_code_to_swift

    另外,删除您的deriveddata,执行一个干净的构建并重新启动xcode。

        3
  •  0
  •   Satyam    6 年前

    如何在基于swift的框架中看到“header”文件,即使删除了obj c文件。肯定有构建问题。如果构建是正确的,那么在构建之后您没有引用/使用正确的框架(在应用程序中)。这是我在许多开发人员中观察到的最常见的错误。

        4
  •  0
  •   Vicente Garcia    6 年前

    也许这会有帮助,在你的框架目标上试试 生成设置 :

    • 禁用模块(启用模块(C和目标C))

    Disable modules

    • 确保设置了swift版本(swift语言版本)

    enter image description here