gpt4 book ai didi

ios - 制作混合的 Objective-C 和 Swift 框架

转载 作者:IT王子 更新时间:2023-10-29 05:38:24 24 4
gpt4 key购买 nike

所以我开始着手将 Swift 添加到现有的 Objective-C 框架中。

坏消息是它做起来相当简单,而且看起来好像在工作。这意味着我得到了 Swift 代码来查看 obj-c 类,甚至可以相当轻松地进行构建。我设置了一个桥接头,添加了我需要的东西,更改了模块名称等,基本上一切正常。

后来我意识到了一些事情。

首先,您不应该在框架中使用桥接 header 。事实上,我尝试了一个测试项目,但它不允许我这样做。但我的实际项目中有人允许这样做。

它肯定开始搞砸了。我认为是因为它似乎在 Swift 生成的 header 中包含了桥接 header ,或者可能包含了它如何导入伞形 header 的其他内容。我得到了让 swift 自动使用 Umbrella header 的简单性,除了出于几个原因我需要另一个 header 。

  1. 从框架内部导入我不想成为公共(public)框架 header 的私有(private) header 。
  2. 导入我们链接到的其他框架并需要访问其公共(public) header 。我不想在此框架的伞头中导入这些其他框架。

在这种情况下我遇到了几个问题。

外部目标无法使用 @import 加载此框架。而且我也不能直接导入框架的桥接头文件。这意味着我无法从另一个目标访问 Swift 代码。我写了一个访问器类,在这种情况下这没什么大不了的。直到我意识到它包含一个测试用例目标,所以如果没有框架目标中的某种测试实现,我就无法有效地测试这段代码。甚至我的测试目标中的 swift 测试都无法访问 Swift。

那么有没有办法做到这一点呢? TL:DR “我可以拥有一个混合的 Swift/Obj-c 框架,它的 Swift + Obj-c 可以从外部访问,并保持它的一些 obj-c 私有(private)吗?”

最佳答案

我解决了。

I add public to class and protocol, so that I can access swift code in objective-c

关于ios - 制作混合的 Objective-C 和 Swift 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34006025/

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