关于ios:快速和客观的桥接 – c

bridging swift and objective-c

我有Objective-C项目,并在其中添加了Swift文件。我创建了网桥文件,并在一些头文件中导入了swift文件,没有问题。

但是我需要通过在"-Bridging-Header.h"文件中添加一些头文件来将它们导入到swift文件中。

如果我将头文件放在那个网桥文件中,而这个头文件以前是导入Swift文件的,xcode会给我错误消息:对于Swift网桥文件,"找不到文件"。

即:

  • 我有一个项目名叫"projectblablabla"
  • 我有一个名为"readingpage.h"的头文件
  • 我有一份名为"readingswift.swift"的swift文件。
  • swift bridge文件名:"projectbla swift.h"
  • 我创建了头桥文件:"projectblabla bridging header.h"
  • 我在"readingpage.h"文件中毫无问题地导入了"projectbla swift.h",并在objective-c中使用了swift类。
  • 当我在"projectbla bridging header.h"中导入"readingpage.h"时,在"readingpage.h"中收到错误消息:"ProjectBlaBla-Swift.h file not found"

    有什么建议吗?

谢谢


你不能直接或间接地引用-swift.h files in-bridging-header.h files.

如果你打开-swift.h,你会看到一条线接近顶端,在我的案例99:#import"/Users/.../...-Bridging-Header.h"中,Meaning-swift.h already imports-bridging-header.h,进而产生循环依赖性。

要避免这一点,任何听众都必须使用前面提到的Swift Class或Protocols来解答这个问题。

短期内,如果readingPage.h使用一个叫MySwiftClass的Swift Class,你应该:

  • Remove any references to -Swift.hfrom readingPage.h
  • 进出口趋势图
  • 在使用本课之前,先读出客观的——C知道这样一个阶级的存在并在那里申报。

  • 检查桥接接头路是否正确。在左边,选择项目名称>>>目标>>>>>>>>为客观的桥梁头搜索。下面的照片

    MGX1〔0〕


    两个选项

  • Import the"ProjectBla-swift.h"inside the"reading page.m"file instead of"reading page.h"file
  • 创建一个新的PCH文件名为"prefix.pch"和import"projectbla-swift.h"内的文件。
  • 注:prefix.pch是一个预编译的头,可编译为faster。您不需要再输入任何被导入的文件。