objective-c - 将 obj-c 库导入到 swift 会导致解析问题

标签 objective-c swift

我正在尝试导入EZAudio到我的 Swift 项目。由于我的项目是用 Swift 编写的,因此我使用桥接 header 来导入它。因此我复制了this文件夹到我的项目,并将每个文件单独添加到桥接头文件中。例如:

#import "EZAudioPlayer.h"

当我尝试编译时遇到解析问题。

我已经通过转到“build设置”并检查“Swift 编译器”部分下此文件的路径是否正确来检查 Xcode 是否看到了桥接头文件。

一些截图:

Parse Issues

Build Settings

最佳答案

我快速检查了“AZAudio.h”,我可以说问题出在所有 Objective-C 文件中都存在的循环引用。

编写#import "EZAudioPlayer.h" 将导入“AZAudio.h”,其中包含原始的“EZAudioPlayer.h”,创建 Swift 不喜欢的循环 header 引用。

这里有两个潜在的解决方案:

  • 使用 Cocoapods 或 Carthage
  • 编辑所有 header 以避免循环引用,在每个 Header(.h) 文件中使用 @class 指令并将 #import 宏移动到实现文件 ( .m)。

关于objective-c - 将 obj-c 库导入到 swift 会导致解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29535199/

相关文章:

ios - YouTube Objective-C API 视频 maxResults

iphone - lowercaseStringWithLocale是做什么的?

ios - TableView 上的搜索栏不起作用

ios - 在 Swift 初始值设定项中分配给常量

ios - 使用 [indexPath.section][indexPath.row] 的下标使用不明确

objective-c - 声明一个 ObjC 参数,它是一个符合协议(protocol)的类

iOS - NSURLSession 第二次不工作

iphone - -[MyClassName copyWithZone :] unrecognized selector sent to instance

swift - 格式化日期 2 行

Swift 和 Realm : getting Thread 1: signal SIGABRT when add objects in list