我有一个C函数,我从桥接头文件中访问它,并返回一个const char*
:
const char* get_c_string();
然后我尝试将其转换为Swift字符串:
let str = String.fromCString(UnsafePointer<Int8>(get_c_string()))
print(str)
但它只是打印出了垃圾:
Optional("\u{14}\0\0")
我可以找到如何将Swift字符串传递给C,但不能反过来。我该如何将
const char*
转换为Swift字符串?谢谢!
const char*
C 字符串(来自于一个std::string
)。 - Pat Mustardget_c_string
和call_hi
。除此之外,你的转换方法应该是有效的。请注意,指针转换并非必要:let str = String.fromCString(get_c_string())
。 - Martin R