Swift (NS)StreamDelegate-写入已关闭文件时无错误
当使用Swift (NS)StreamDelegate-写入已关闭文件时无错误,swift,foundation,nsoutputstream,Swift,Foundation,Nsoutputstream,当使用OutputStream写入文件时,在关闭该流后,不会出现错误,它会自动写入失败 开始: self.outputStream = OutputStream(toFileAtPath: filePath, append: true) self.outputStream.delegate = self self.outputStream.schedule(in: RunLoop.current, forMode: RunLoopMode.defaultRunLoopMode) self.op
OutputStream
写入文件时,在关闭该流后,不会出现错误,它会自动写入失败
开始:
self.outputStream = OutputStream(toFileAtPath: filePath, append: true)
self.outputStream.delegate = self
self.outputStream.schedule(in: RunLoop.current, forMode: RunLoopMode.defaultRunLoopMode)
self.open()
代表正在工作:func流(aStream:stream,handleeventcode: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")
}
self.outputStream.close()
让BytesWrite=self.outputStream.write(newData,maxLength:newData.count)
如果字节数小于0{
打印(“失败:”,outputStream.streamError?.localizedDescription???“未知错误”)
}
关闭输出流后写入输出流是一个错误,该检查将检测到该错误
流的streamError
可以提供附加信息
但是,如果出现错误,则在这种特殊情况下为nil
。谢谢。刚刚到达:注意到write
有一个返回值后。