在Swift中使用Objective-C typedef void

在Swift中使用Objective-C typedef void,objective-c,swift,typedef,type-alias,Objective C,Swift,Typedef,Type Alias,我正在一个新的Swift环境中使用Objective-CAPI。大多数情况下,一切都很好,但我在typedef问题上遇到了麻烦 API的typedef定义为: typedef void* TESTHANDLE; 通常在Objective-C中,我会简单地像声明任何类型的变量一样使用它: TESTHANDLE NewTestHandle; 下图是一个Objective-C项目的示例,该项目使用了此方法 我想用Swift声明一个新的TESTHANDLE变量,与上面的方法相同。我需要在代码后面为

我正在一个新的Swift环境中使用Objective-CAPI。大多数情况下,一切都很好,但我在typedef问题上遇到了麻烦

API的typedef定义为:

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

TESTHANDLE NewTestHandle;
下图是一个Objective-C项目的示例,该项目使用了此方法

我想用Swift声明一个新的TESTHANDLE变量,与上面的方法相同。我需要在代码后面为TestHandle分配一个值,它是TestHandle类型

通过阅读以上内容,我发现typealias现在是一个不错的选择,但我无法更改API


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

您只需在项目中添加桥接标题即可

以以下目标C类为例:

  • 将头文件添加到项目中。默认的命名约定是-bridgeing Header.h

  • 使用#Import语句将Objective-C API头导入到此头

  • 在“项目构建设置”下,通过将此标题的路径置于“Objective-C桥接标题”中,将其设置为Objective-C和Swift world之间的桥梁。到.xcodeproj的相对路径将简单地工作
  • 像往常一样使用Swift中的类型

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

    我添加了更多信息。我不确定要用什么确切的术语来表达我的观点。谢谢Matt,我会根据这个信息挖掘更多信息。我发现了一些关于桥接编写
    TESTHANDLE的信息TESTHANDLE
    就像在Swift中编写
    Int I
    。这不是有效的语法。Swift语法是
    let-testHandle:testHandle=…
    。谢谢Ayan,这是第一个难题!我现在有另一篇文章,我将在这里发布一个链接,以防万一你也能在那里帮助我!如果你有时间,我的新问题是什么