我正在研究一個訪問C庫的Swift應用程序。typedef結構從C到Swift
.h文件包含一個typedef結構:
typedef struct _DATA_KEY_ * CURRENT_DATA_KEY;
還有另一個類的方法:
-(int) initWithKey(CURRENT_DATA_KEY * key);
我需要在我的代碼來創建一個CURRENT_DATA_KEY。不知道我在Swift中如何實現這一點。
存在使用一些舊的Objective-C代碼:
CURRENT_DATA_KEY key = NULL;
initWithKey(key)
我已經試過:
let myKey = UnsafeMutablePointer<CURRENT_DATA_KEY>.allocate(capacity: 1)
但是,當我稍後再嘗試使用它作爲功能的說法,我得到錯誤:
Cannot convert value of type 'UnsafeMutablePointer<_DATA_KEY_>' (aka 'UnsafeMutablePointer(<OpaquePointer>)') to expected argument type 'UnsafeMutablePointer(<_DATA_KEY_?>!)'
看起來像函數期望一個可選值?
我也試過:
let myKey: CURRENT_DATA_KEY? = nil
let myKey: CURRENT_DATA_KEY = NSNull()
但那些得到類似類型的錯誤。
如何創建:UnsafeMutablePointer(<_DATA_KEY_?>!)
'var myKey:CURRENT_DATA_KEY = nil'有效嗎? –
不,它不起作用。 –