[Swift]如何从Data中取出bytes

/ Mac / 没有评论 / 1454浏览

[Swift]如何从Data中取出bytes

在OC中使用OutStream存储文件时,write方法是这样的:

///无需转换
[self.outputStream write:data.bytes maxLength:data.length];

在Swift中使用OutStream存储文件时,write方法是这样的:

open func write(_ buffer: UnsafePointer<UInt8>, maxLength len: Int) -> Int

如何从data中取出bytes并转换成UnsafePointer:

///使用(data as NSData).bytes 并不优雅  毕竟要尽量脱离OC的框架
///data是结构体  使用[UInt8]构造方法得到data的byte数组
let bytes = [UInt8](data)
///使用UnsafePointer<UInt8>构造方法生成指针
outputStream?.write(UnsafePointer<UInt8>(bytes), maxLength: bytes.count)