Max*_*amy 5 linux swift swift2
我在Linux上使用Swift 2.2,我需要在标准错误流上编写一些调试输出.
目前,我正在做以下事情:
import Foundation
public struct StderrOutputStream: OutputStreamType {
public mutating func write(string: String) { fputs(string, stderr) }
}
public var errStream = StderrOutputStream()
debugPrint("Debug messages...", toStream: &errStream)
Run Code Online (Sandbox Code Playgroud)
但是,我已将Swift升级到2.2.1,但似乎Foundation已不再可用.
如何使用Swift 2.2.1在标准错误流上编写(并且仍然可以在下一次升级时使用)?
来自https://swift.org/blog/swift-linux-port/:
Glibc模块:大多数Linux C标准库都可通过此模块获得,类似于Apple平台上的Darwin模块.
所以这适用于所有Swift平台:
#if os(Linux)
import Glibc
#else
import Darwin
#endif
public struct StderrOutputStream: OutputStreamType {
public mutating func write(string: String) { fputs(string, stderr) }
}
public var errStream = StderrOutputStream()
debugPrint("Debug messages...", toStream: &errStream)
Run Code Online (Sandbox Code Playgroud)
Swift 3更新:
public struct StderrOutputStream: TextOutputStream {
public mutating func write(_ string: String) { fputs(string, stderr) }
}
public var errStream = StderrOutputStream()
debugPrint("Debug messages...", to: &errStream) // "Debug messages..."
print("Debug messages...", to: &errStream) // Debug messages...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1443 次 |
| 最近记录: |