在Swift代码

时间:2017-02-06 17:01:47

标签: ios objective-c swift xcode

我知道如何在Objective-C中使用 Swift代码 (通过在Objective-C代码中导入Swift生成的头文件),我知道如何使用目标-C Swift中的代码 (通过将其添加到Objective-C桥接头),但是对于相同的代码,是否真的不可能实现这种“反之亦然”?

解释

由于我开始在一个大型的Objective-C项目中混合Swift,我经常遇到同样的问题:

  1. 我在Swift中写了一些新代码。
  2. 后来,我在旧的Objective-C代码中使用了新的Swift代码。
  3. 后来,我需要在其他一些Swift代码中使用相同的Objective-C代码(现在使用Swift代码),但是当问题出现时就是这样。
  4. 它始于Objective-C代码中的错误'ProjectName-Swift.h' file not found(以前工作得很好)。 如果我从桥接头中删除此Objective-C文件,则此错误消失了,但现在我无法在Swift中使用此Objective-C代码。

    结论:

    因此,如果Objective-C文件已存在于桥接头中(即在Swift中使用),则看起来不可能在Objective-C中添加Swift代码(即导入生成的Swift头文件)。 这是真的吗?

    对我来说,似乎我陷入某种“循环引用”问题,其中Swift代码试图“重新导入”Swift代码(如果桥接头包含已经导入Swift代码的Objective-C文件)

    现在,我想我明白为什么会发生这种情况,但对我来说,这似乎是一个经常使用案例,试图将Swift合并到一个古老的Objective-C项目中,所以我想知道我是否遗漏了一些明显的东西,或者如果其他人有同样的问题,并且知道某种替代解决方案

0 个答案:

没有答案