我正在研究一个访问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'有效吗? –
不,它不起作用。 –