通过UnsafemtableRawPointer导出SwiftUI视图

通过UnsafemtableRawPointer导出SwiftUI视图,swift,pointers,swiftui,ffi,unsafemutablepointer,Swift,Pointers,Swiftui,Ffi,Unsafemutablepointer,我想返回一个SwiftUIText视图,作为不可配置的rawpointer,遵守C调用约定,这样其他语言就可以在其中使用 @\u cdecl(“hi”) func-hi(txt:UnsafeMutablePointer)->(){ var view=ViewBuilder.buildBlock(文本(字符串(cString:txt))) 返回UnsafeMutableRawPointer(Unmanaged.passUnretained(view).toOpaque()) } 但我收到以下错误

我想返回一个SwiftUI
Text
视图,作为
不可配置的rawpointer
,遵守C调用约定,这样其他语言就可以在其中使用

@\u cdecl(“hi”)
func-hi(txt:UnsafeMutablePointer)->(){
var view=ViewBuilder.buildBlock(文本(字符串(cString:txt)))
返回UnsafeMutableRawPointer(Unmanaged.passUnretained(view).toOpaque())
}
但我收到以下错误:

Cannot invoke 'passUnretained' with an argument list of type '(Text)'

如何获取SwiftUI
Text
对象的底层指针?

用自己的类将其包装起来

@_cdecl("hi")
func hi (txt: UnsafeMutablePointer<CChar>) -> UnsafeMutableRawPointer {
   let view = ViewBuilder.buildBlock(Text(String(cString: txt)))
    return UnsafeMutableRawPointer(Unmanaged.passUnretained(Wrapper(text: view)).toOpaque())
}

final class Wrapper {
    let text: Text
    init(text: Text) {
        self.text = text
    }
}
@\u cdecl(“hi”)
func hi(txt:UnsafeMutablePointer)->UnsafeMutableRawPointer{
让view=ViewBuilder.buildBlock(文本(字符串(cString:txt)))
返回UnsafeMutableRawPointer(Unmanaged.passUnretained(包装器(文本:视图)).toOpaque())
}
最终类包装器{
让文本:文本
初始化(文本:文本){
self.text=文本
}
}