繁体   English   中英

Swift 桥接头和 Obj-C 类的可见性

[英]Swift Bridging Header and visibility of Obj-C class

我添加了桥接头,在构建设置中指定了它的完整路径,桥接头是自动创建的。 在此之后,我已经在其中包含了我的 obj-c 头文件。 但是每次调用对象构造函数的尝试都失败了:“使用未声明的标识符”。在此处输入图片说明

我做过的事情清单:

  1. 创建 .m 文件和 Xcode 建议创建桥接头
  2. 将 obj-c 文件添加到项目并将它们导入到标题中
  3. 在构建设置中提供了桥接头文件的完整路径

在此处输入图片说明

  1. 在代码中使用了 Obj-C 类型......但它不会构建。
  2. 然后,我没有提供标题的完整路径,而是提供项目所在文件夹的路径 - 没有结果。

我根据苹果文档仔细检查了所有步骤,但没有结果。 为什么? 任何帮助,将不胜感激。

按着这些次序:

  1. 创建一个 Swift 项目
  2. 添加一个测试类作为Cocoa Class而不是 .m 和 .h 分开。 Xcode 提示添加桥接头。
  3. 在桥接标头中导入测试类标头,您已经这样做了。 在 Swift 中实例化测试类应该没有问题。
  4. 将 BL_KeyChainWrapper .m 和 .h 复制到 finder 中的项目目录。
  5. 将 BL_KeyChainWrapper 文件拖到项目中并确保Add to Targets
  6. 在桥接标头中导入 BL_KeyChainWrapper 标头。
  7. 在 Swift 中实例化 BL_KeyChainWrapper 类。

如果按照上面的步骤,还是报错。 可能是您没有在 BL_KeyChainWrapper.h 中声明名为BL_KeyChainWrapper的类。 确保在 BL_KeyChainWrapper.h 中有如下代码:

@interface BL_KeyChainWrapper : BaseClass

好吧,在创建带有桥接头的测试项目后,我发现了以下内容:

  1. 我添加了 .m 文件,Xcode 建议我创建桥接头。

  2. 我添加了 .h 文件,将其命名为类并以这种方式创建了 Obj-C 类。

和:

在构建设置 - 代码生成部分如下所示:

在此处输入图片说明

桥接文件位于以下路径:

项目名称 / BridgHeader.h

与 .xcodeproj 文件处于同一级别。

但:

当我将已经创建的 Obj-C 类添加到项目并在桥接头中添加标头导入时,我无法使用它:

在此处输入图片说明

所以,我猜,Xcode 6 beta 2 无法将现有文件添加到 swift 项目。 有人遇到过这个问题吗? 因为我不想粘贴所有现有的库,我开发了 5 年来创建文件。

PS:

桥接头:

在此处输入图片说明

暂无
暂无

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

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