是否可以将Swift类转换为C void*指针?

Coc*_*ser 5 c objective-c callback swift

是否可以将Swift类转换为C void*指针?

// swift class
 class MyClass {

 }

var myClass = MyClass()
var p: UnsafeMutablePointer<Void> = myClass //<- failed

//c function 
void someSwiftClass(void *context);
Run Code Online (Sandbox Code Playgroud)

谢谢

Ami*_*t89 4

我有类似的问题,你可以如下转换。

var myClass = MyClass()

var classPtr = unsafeBitCast(myClass, UnsafePointer<Void>.self)    
Run Code Online (Sandbox Code Playgroud)

和你的功能,

func someSwiftClass(voidPointer: UnsafeMutablePointer<Void>) {

}
Run Code Online (Sandbox Code Playgroud)

如果你想声明常量指针使用UnsafePointer<T>并且当你的指针不是常量使用UnsafeMutablePointer<T>

在 C 常量指针中 -const int *myCpointer

对应的快速指针-let mySwiftPointer: UnsafePointer<Int32>