在 Swift 中使用 Objective-C typedef void

Using an Objective-C typedef void in Swift

我在新的 Swift 环境中使用 Objective-C API。在大多数情况下,一切都运行良好,但我遇到了 typedef 问题。

API 的 typedef 定义为:

typedef void* TESTHANDLE;

通常在 Objective-C 中,我会像声明任何类型的变量一样简单地使用它:

TESTHANDLE NewTestHandle;

下图是使用此方法的 Objective-C 项目的示例。

我想在 Swift 中声明一个新的 TESTHANDLE 变量,就像我在上面所做的那样。后面代码中需要给TestHandle赋值,类型为TESTHANDLE.

仔细阅读这篇文章,我发现类型别名现在是可行的方法,但我无法更改 API。

如何在 Swift 中使用 Objective-C 中的这个 typedef?

您只需在项目中添加桥接 header 即可。

以下面的例子为例 Objective C class:

  1. 将 header 文件添加到您的项目。默认命名约定为 -Bridging-Header.h

  2. 使用#import 语句将您的 Objective-C API header 导入此 header。

  1. 在项目构建设置下,通过将它的路径放在 "Objective-C Bridging Header" 中,将这个 header 设置为你的 Objective-C 和 Swift 世界之间的桥梁。 .xcodeproj 的相对路径将简单地工作。

  1. 照常使用Swift中的类型

但是请记住,所有此类类型在 Swift 中都将被视为 UnsafeRawPointerUnsafeMutableRawPointer