我已經交流功能,這是我從一個橋接報訪問返回const char*
:從爲const char *轉換爲雨燕串
const char* get_c_string();
然後我嘗試將其轉換爲雨燕字符串:
let str = String.fromCString(UnsafePointer<Int8>(get_c_string()))
print(str)
...但它只是打印垃圾:
Optional("\u{14}\0\0")
我可以找到如何斯威夫特字符串傳遞給C,但沒有反過來。如何將const char*
轉換爲Swift字符串?
謝謝!
這個字符串有特殊字符? –
不,它只是一個標準的'const char *'c字符串(來自'std :: string') –
你的例子中有兩個*不同的函數'get_c_string'和'call_hi'。除此之外,您的轉換方法應該可以工作。請注意,指針轉換不是必需的:'let str = String.fromCString(get_c_string())'。 –