如何将NSData转换为UInt8的数组iOS目标C?

时间:2017-05-11 06:22:03

标签: ios objective-c swift byte uint8t

我有 Swift 代码来转换此方法:

func DATA_TO_UINT8(_ d:Data) -> Array<UInt8> {
        return d.withUnsafeBytes {
            [UInt8](UnsafeBufferPointer(start: $0, count: (d.count)))
        }
}  

现在我想要目标C

1 个答案:

答案 0 :(得分:1)

要生成基于堆栈的数组,尝试类似(代码直接输入到答案中,期望错误):

NSData *data = ...

UInt8 buf[data.length]; // local stack array
[data getBytes:buf length:data.length];

如果你想要一个堆数组,你需要使用malloc来分配内存,如果你实际上不需要数组只是一个C指针你可以使用NSData {{1}方法。