繁体   English   中英

将Objective-C框架转换为Swift-头文件仍显示Objective-C函数

[英]Converting an Objective-C framework to Swift - Header files still displaying Objective-C functions

我将整个Objective-C框架都转换为Swift 构建它之后,当我检查框架的Header文件时,它仍显示旧的Objective-c函数。
我从框架项目中删除了所有Objective-C文件。 我曾尝试清洁和建设该项目。 但是没有成功。

您已从Xcode项目中删除了Objective-C文件,但是还从文件系统以及您可能正在使用的任何源代码管理中删除了它们吗?

同样,即使您已将Xcode项目中的“构建设置”从显式包含在Xcode的项目导航器中明确删除后,也可以在它们中搜索库/头文件。

只要确保搜索路径不会寻找旧的Obj-C东西即可。 注意诸如MyXcodeProject/**类的递归搜索。 **将递归搜索所有子文件夹及其子文件夹以查找要包含的内容。

如果可以的话,最好直接在搜索路径中指定文件夹。 如果您知道不需要搜索路径,则只需清除它们即可。

在此处输入图片说明

...尽管,您可能希望保留默认排除项:

在此处输入图片说明

请记住,您不能在Objective-C中继承Swift类。 因此,您迁移的类不能包含任何Objective-C子类。

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

为了使Swift类在Objective-C中可用,使其成为Objective-C类的后代。

按住Command键并单击Swift类名称,以查看其生成的标头。

按住Option键单击一个符号可以查看有关它的隐式信息,例如其类型,属性和文档注释。

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

另外,删除您的DerivedData,执行干净的构建并重新启动xCode。

即使删除了Obj C文件,如何在基于Swift的框架中也能看到“ Header”文件。 肯定存在构建问题。 如果构建正确,则构建后您将不会引用/使用正确的框架(在应用程序中)。 这是我在许多开发人员中发现的最常见的错误。

也许可以帮上忙,在您的框架的“目标构建设置”上尝试一下:

  • 禁用模块(启用模块(C和Objective-C))

禁用模块

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

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM