如何在 Objective-C 中使用 Swift 文件?
Posted
技术标签:
【中文标题】如何在 Objective-C 中使用 Swift 文件?【英文标题】:How to work with Swift file in Objective-C? 【发布时间】:2016-11-24 05:38:07 【问题描述】:我想使用一个用 Swift 编写的第三方库,但我在 Objective-C 环境中工作。怎么做?到目前为止,我所做的是:
-
将第三方库拖放到我的项目中。
它要求我单击“是”的桥接头。
在构建设置中
defines Modules
没有到 yes
在两者中。
产品模块名称显示为$(PRODUCT_NAME:c99extidentifier)
。我也尝试过使用我的项目名称。
现在我收到很多如下错误:
pDatePicker.swift:50:9:一行上的连续声明必须用';'分隔
和
'open' 的模糊使用。
我收到与上述错误相同的大约 50 到 60 个错误。我的错误在哪里?有人可以帮帮我吗?
【问题讨论】:
【参考方案1】:你能在你的项目中看到 projectName-Swift.h 文件吗?
演示示例可在 github 上找到。
https://github.com/hasyapanchasara/UsingSwiftInObjectiveC
如果是,那么希望您在 Objectice C .m 文件中导入了#import "projectName-Swift.h" ?
#import "projectName-Swift.h"
只有你才能在 swift 代码中访问目标 c 文件。
参考
https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html
签入构建设置 Objective-C 桥接头 ProjectName-Bridging-Header.h 有完美的位置。如果该路径存在问题而不是桥接将无法正常工作,那为什么当您编译 #import "projectName-Swift.h"
时不会生成。
Download
下载以上示例项目。
【讨论】:
不,我没有找到“projectName-Swift.h”如何生成该文件。我正在使用 7.3.1 xcode 那么桥接肯定有问题。检查构建设置 - Objective-C Bridging Header - ProjectName-Bridging-Header.h 有完美的位置。如果该路径存在问题而不是桥接将无法正常工作,那为什么当您编译 #import "projectName-Swift.h" 时没有生成。 但我仍然遇到同样的错误,我没有找到“projectName-Swift.h”。我只是检查了我认为它只是当前位置的位置。 检查我的更新答案,刚刚为您完成了演示,下载并检查正确的配置。 非常感谢。【参考方案2】:确保您在设置中的 swift 版本与此库使用的版本相同;如果没有,请尝试自己翻译,或者将 Use Legacy Swift Version 设置为 YES
【讨论】:
以上是关于如何在 Objective-C 中使用 Swift 文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Objective-C 中使用 Swift 字符串枚举?
如何在 Flutter 插件的 Swift 编写的 iOS 部分中使用 Objective-C 框架