我在swift中與libxml2進行交互,並且C API綁定(仍然)爲c字符串生成UnsafePointer<Int8>!
。 Swift API通常會導致UnsafePointer<UInt8>!
。Swift3:將字符串轉換爲以空字符結尾的C字符串的正確方法
所以我的問題是 - 我正在以正確的方式做字符串以空終止的C字符串?
let cfilePath = unsafeBitCast(myStringString.nulTerminatedUTF8.withUnsafeBufferPointer { $0.baseAddress }, to: UnsafePointer<Int8>.self)
如果我反而更喜歡使用其他一些方法,而不是僅僅繞過雨燕與解釋UInt8
字節Int8
字節檢查?
這不是我猜的好方法。 Int8(bitPattern:$ 0)將產生127以上的數字的運行時異常,而UInt的範圍爲0 ... 255 – ambientlight
@ambientlight請參閱更新.... – user3441734
請原諒,你是對的,init(bitPattern:)不會產生例外,我把它與Int8(_值:)混淆...... – ambientlight