1

我通过 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' 的重载

提前感谢您的回答!

4

1 回答 1

0

问题在于 UnsafePointer 的初始化。在这种情况下,您根本不需要它,您可以只传递&buffer[bytesWrittenSoFar],因为这是传递给需要 unsafePointer 的函数的可接受值,根据苹果书“Using Swift with Cocoa and Objective-C”中的讨论”。

于 2014-10-31T11:10:03.897 回答