【发布时间】:2016-11-12 07:51:44
【问题描述】:
我在 .h 文件中有一个 unsigned char 数组。而且,我还有一个将 unsigned char 数组作为输入的函数。当我尝试快速调用这个函数时,它得到UnsafeMutablePointer<UInt8>。因此,objective-c 到 swift 的自动转换器认为 unsigned char 应该转换为 UnsafeMutablePointer<UInt8>。但是,我不能直接将我的变量传递给这个函数。因为我明白了,
Cannot convert value of type '(UInt8, UInt8, UInt8, UInt8, UInt8)' to expected argument type 'UnsafeMutablePointer<UInt8>!'
这个数组的长度是静态的。所以,我可以创建
let key = UnsafeMutablePointer<UInt8>.allocate(capacity: 64);
而且,我还可以通过KEY.0、KEY.1 ... 等获取值。所以,我只需要创建一个 for 循环来从KEY 读取值并将其分配给key
for index in 1...64 {
key[index] = KEY[index];
}
但是,这会导致编译错误:
Value of tuple type '(UInt8, UInt8, UInt8, UInt8, UInt8)' has no member 'index'
所以,第一个问题,我如何通过索引从KEY 获取任何值。其次,有没有更简单的方法可以将unsigned char 数组转换为UnsafeMutablePointer<UInt8>
【问题讨论】:
标签: objective-c c swift