如果以前曾问过这个问题,请告诉我,我将删除这个问题。但是,我找不到答案。
我目前正在使用此功能:
https://developer.apple.com/reference/foundation/outputstream/1410720-write
func write(_ buffer: UnsafePointer<UInt8>, maxLength len: Int) -> Int
写入流。它返回一个整数,根据文档,此整数用于确定数据是否成功发送:
我对最后一个很好奇。在我的代码中,我得到了此错误的值,在我的情况下为-1。我希望看到具体失败的内容。但是,如何从整数获取错误对象?
因此,基本上,如何获得此信息:“可以使用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)")
}
}
而且打印出来的错误是零。
最佳答案
InputStream
和OutputStream
都从Stream
继承,后者具有
streamError
属性:
简单的例子:
let written = stream.write(buffer, maxLength: length)
if written == -1 {
if let error = stream.streamError {
print(stream.streamError?.localizedDescription ?? "Unknown error")
}
显然,在某些情况下,失败后未设置
streamError
写,例如如果您未open()
流。