gpt4 book ai didi

swift - (NS)StreamDelegate - 写入关闭时没有错误

转载 作者:搜寻专家 更新时间:2023-11-01 07:03:07 32 4
gpt4 key购买 nike

当使用 OutputStream 写入文件时,在该流关闭后,没有错误,它静静地写入失败。

开始:

self.outputStream = OutputStream(toFileAtPath: filePath, append: true)

self.outputStream.delegate = self
self.outputStream.schedule(in: RunLoop.current, forMode: RunLoopMode.defaultRunLoopMode)
self.open()

代表正在工作:
func stream(_ aStream: Stream, handle eventCode: Stream.Event) {
//将报告流已打开。

...写一些文本 - 成功...

self.outputStream.close()
self.outputStream.write(newData, maxLength: newData.count)

然后……什么都没有。没有写入文本,但没有报告错误。
写入已关闭的流不会触发错误吗?也就是说,我们是否应该在写入之前检查流状态?

最佳答案

您应该始终检查 write() 的返回值,这是写入流的字节数,或者 -1 错误:

self.outputStream.close()
let bytesWritten = self.outputStream.write(newData, maxLength: newData.count)
if bytesWritten < 0 {
print("failed:", outputStream.streamError?.localizedDescription ?? "Unknown error")
}

在输出流关闭后写入输出流一个错误,并且会被该检查检测到。

流的streamError可以提供额外的信息在发生错误的情况下,但是在这种特定情况下它是 nil

关于swift - (NS)StreamDelegate - 写入关闭时没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49916298/

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