将二进制信息保存到文件中

时间:2014-10-31 10:24:19

标签: ios swift stream file-writing

我在Swift中通过流接收二进制信息。让我们说这些信息是图片。我现在要保存图片。这怎么可能?

我试过以下:

let bufferSize = 154000
var buffer = [UInt8](count: bufferSize, repeatedValue: 0)
var bytesRead = inputStream?.read(&buffer, maxLength: bufferSize)
if bytesRead > 0 {

var bytesWrittenSoFar = 0
do {
    var diffbytes = bytesRead! - bytesWrittenSoFar

    fileStream?.open()
    fileStream?.write(UnsafePointer(&buffer[bytesWrittenSoFar]), maxLength: diffbytes)

} while (bytesWrittenSoFar != bytesRead);

但是当我尝试编写(fileStream?.write ...)时,我收到以下错误:“无法找到接受提供的参数的'init'的重载

提前感谢您的回答!

1 个答案:

答案 0 :(得分:0)

问题在于UnsafePointer的初始化。在这种情况下,您根本不需要它,您只需传递&buffer[bytesWrittenSoFar],因为这是一个可接受的值,可以传递给需要unsafePointer的函数,根据苹果书中的讨论&# 34;使用Swift与Cocoa和Objective-C"。