如何查看写入功能期间发生的特定错误

How to see what specific error is occurring during write function

如果以前有人问过这个问题,请告诉我,我会删除这个问题。但是,我找不到可以回答这个问题的人。

我目前正在使用这个功能: https://developer.apple.com/reference/foundation/outputstream/1410720-write

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

写入流。它 returns 一个整数,根据文档,这个整数用于确定数据是否发送成功:

我对最后一个很好奇。在我的代码中,我得到了这个错误的值,在我的例子中是 -1。我希望看到具体是什么失败了。但是如何从整数中获取错误对象?

所以基本上,我如何得到这个:"more information about the error can be obtained with streamError."

谢谢。

编辑:

首先感谢您的回答。但是,我最终使用了以下代码:

    for buffer in buffers {
        let output = outputStream?.write((buffer.mData?.load(as: UnsafePointer<UInt8>.self))!, maxLength: Int(buffer.mDataByteSize))

        if output == -1 {
            let error = outputStream?.streamError
            print("\(#file) > \(#function) > Error: \(error?.localizedDescription)")
        }
    }

它打印出错误为零。

InputStreamOutputStream 都继承自 Stream,其中有 一个 streamError 属性:

Returns an NSError object representing the stream error.

简单示例:

let written = stream.write(buffer, maxLength: length)
if written == -1 {
    if let error = stream.streamError {
    print(stream.streamError?.localizedDescription ?? "Unknown error")
}

显然有些情况下 streamError 在失败后未设置 写,例如如果你没有 open() 流。