[英]withUnsafePointers is unavailable
我正在嘗試將以下代碼從 swift 2 升級到 3,但我發現 withUnsafePointers 不可用:改用嵌套 withUnsafePointer。 我已經嘗試了幾種方法,但我無法做到。 他是我的代碼
var v: LinphoneManager = self
var lct: LinphoneCoreVTable = LinphoneCoreVTable()
let theLinphoneCore : OpaquePointer = withUnsafePointers(&lct, &v, { (ptr: UnsafePointer<LinphoneCoreVTable>, selfPtr: UnsafePointer<LinphoneManager>) -> OpaquePointer in
let voidPtr: UnsafeMutableRawPointer = unsafeBitCast(selfPtr, to: UnsafeMutableRawPointer.self)
return linphone_core_new_with_config (ptr, self.configDb!, voidPtr /* user_data */)
})
錯誤信息:
withUnsafePointers 不可用:改用嵌套的 withUnsafePointer
手段代替調用withUnsafePointers(它有兩個項目,並創建指向每個)與兩次調用withUnsafePointer
,一個接一個的瓶蓋內,每次取一個項目,並創建一個指向它的指針。
所以這:
withUnsafePointers(&a, &b) { aPtr, bPtr in
// do something with aPtr and bPtr
}
變成這樣:
withUnsafePointer(&a) { aPtr in
withUnsafePointer(&b) { bPtr in
// do something with aPtr and bPtr
}
}
我在剛剛更新為 swift3 的項目中使用 linphone。 這就是我將這些行更新為的內容。 似乎運作良好。 希望這可以幫助!
var lct: LinphoneCoreVTable = LinphoneCoreVTable()
theLinphoneCore = withUnsafePointer(to: &lct) { (ptr: UnsafePointer<LinphoneCoreVTable>) -> OpaquePointer in
let selfPtr: BTVoipService = self
let voidPtr: UnsafeMutableRawPointer = unsafeBitCast(selfPtr, to: UnsafeMutableRawPointer.self)
return linphone_core_new_with_config (ptr, self.configDb!, voidPtr /* user_data */)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.