问题
假设我有这样的结构:
struct Foo
{
var i : Int
var c : Character
}
为了调试目的,为NSLog()提供输出的规范方法是什么?
换句话说,我应该在swift中实现与friend std::ostream& operator<<( std::ostream& os, Foo const& foo )
相当的C ++吗?
答案 0 :(得分:3)
实施Printable
协议。
struct Foo: Printable {
var i : Int
var c : Character
var description: String {
return "i = \(self.i), c = \(self.c)"
}
}
var foo = Foo(i: 1, c: "a")
println(foo)
println("foo = \(foo)")
NSLog("\(foo)")
如果需要,还可以专门为调试实现DebugPrintable
单独的描述:
protocol DebugPrintable {
var debugDescription: String { get }
}