我正在尝试用Xcode6和新的Swift语言为OS X制作一个命令行工具。如何将输出发送到stderr?这是用println完成的吗?
发布于 2014-11-25 12:27:50
对于Swift 4.x:
import Darwin
fputs("hello from libc\n", stderr)
发布于 2017-01-16 22:53:25
这是一个修改自https://gist.github.com/algal/0a9aa5a4115d86d5cc1de7ea6d06bd91的Swift 3代码片段。
import Foundation
var standardError = FileHandle.standardError
extension FileHandle: TextOutputStream {
public func write(_ string: String) {
let data = Data(string.utf8)
self.write(data)
}
}
print("I am printed to stderr", to: &standardError)
发布于 2014-06-04 23:54:41
这可能是一种更好的方法,但您可以使用NSFileHandle
import Foundation
// Create a file handle to work with
let stderr = NSFileHandle.fileHandleWithStandardError()
// Build up a string; whatever you want
let stuff = "something"
let something = "I'm a string with \(stuff) in it\n"
// Write it
stderr.writeData(something.dataUsingEncoding(NSUTF8StringEncoding))
https://stackoverflow.com/questions/24041554
复制相似问题