gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 15:54:26 25 4
gpt4 key购买 nike

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

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

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

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

  • 正数表示写入的字节数。
  • 0 表示固定长度流并已达到其容量。
  • -1表示操作失败;可以使用 streamError 获取有关错误的更多信息。

我对最后一个很好奇。在我的代码中,我得到了这个错误的值,在我的例子中是 -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)")
}
}

它打印出错误为零。

最佳答案

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() 流。

关于swift - 如何查看写入功能期间发生的特定错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41966227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com