我通过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);

但是当我试图写(文件流?.write…)我得到以下错误:“找不到接受所提供参数的“init”的重载
谢谢你提前回答!

最佳答案

问题在于未安全指针的初始化。在这种情况下,您根本不需要它,只需传递&buffer[bytesWrittenSoFar],因为根据苹果书“将Swift与Cocoa和Objective-C结合使用”中的讨论,这是传递给需要不安全指针的函数的可接受值。

10-06 06:57