为了在下载大文件时候节省内存,我们会使用输出流,将下载下来的一节一节的二进制数据写入文件中;但是在OC和swift中,用输出流写入文件的时候,代码编写有不同,以下会列出代码,供大家参考:
OC代码:其中data就是二进制数据变量
// 往输出流中写入数据
[self.outputStream write:data.bytes maxLength:data.length];
swfit代码:里面主要是将二进制数据Data转换成UnsafePointer类型数据
- 从AFN中找的
var buffer = [UInt8](repeating: 0, count: data.count)
data.copyBytes(to: &buffer, count: data.count)
outputStream?.write(buffer, maxLength: buffer.count)
- 有位大神告诉的
let tempData:NSMutableData = NSMutableData()
data.withUnsafeBytes {
tempData.replaceBytes(in: NSMakeRange(0, data.count), withBytes: $0)
}
let p:UnsafePointer = tempData.bytes.assumingMemoryBound(to: UInt8.self)
outputStream?.write(p, maxLength: data.count)
网友评论