Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift (NS)StreamDelegate-写入已关闭文件时无错误_Swift_Foundation_Nsoutputstream - Fatal编程技术网

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
有一个返回值后。