Swift Bridging Obj和Obj-C类的可见性
我已经在构建设置中指定了桥接头,它的完整路径,桥接头是自动创建的。 在此之后,我在其中包含了我的obj-c头文件。 但是每次调用对象构造函数的尝试都会失败:“使用未声明的标识符”。
我做过的事情清单:
- 创建.m文件和Xcode建议创建桥接头
- 将obj-c文件添加到项目中并将其导入标题中
- 在构建设置中提供了桥接头文件的完整路径
- 在代码中使用了Obj-C类型……但它没有构建。
- 然后,我提供的不是标题的完整路径,而是项目所在文件夹的路径 – 没有结果。
我根据苹果文档仔细检查了所有步骤,但没有结果。 为什么? 任何帮助,将不胜感激。
按着这些次序:
- 创建一个Swift项目
- 分别将测试类添加为Cocoa Class而不是.m和.h。 Xcode提示添加桥接头。
- 在桥接头中导入测试类头,您已经这样做了。 应该没有问题在Swift中实例化测试类。
- 将BL_KeyChainWrapper .m和.h复制到finder中的项目目录。
- 将BL_KeyChainWrapper文件拖到项目中并确保添加到目标 。
- 在桥接头中导入BL_KeyChainWrapper标头。
- 在Swift中实例化BL_KeyChainWrapper类。
如果按照上述步骤操作,仍然有错误。 您可能没有在BL_KeyChainWrapper.h中声明一个名为BL_KeyChainWrapper的类。 确保在BL_KeyChainWrapper.h中,您有以下代码:
@interface BL_KeyChainWrapper : BaseClass
好吧,在创建了带有桥接头的测试项目之后,我发现了以下内容:
-
我添加了.m文件,Xcode建议我创建桥接头。
-
我添加了.h文件,将其命名为类并以这种方式创建了Obj-C类。
和:
在构建设置中 – 代码生成部分如下所示:
位于以下路径的桥接文件:
ProjName / BridgHeader.h
与.xcodeproj文件存在相同的级别。
但:
当我将已创建的Obj-C类添加到项目并在桥接头中添加头导入时,我无法使用它:
所以,我猜,Xcode 6 beta 2无法将现有文件添加到swift项目中。 有人遇到过这个麻烦吗? 因为我不想粘贴我正在开发5年来创建文件的所有现有库。
PS:
桥接头: