问题
假设我有一个这样的结构:
struct Foo
{
var i : Int
var c : Character
}
为调试目的向NSLog()提供输出的规范方法是什么?
换句话说,在我应该执行的SWIFT中有一个C++等价的
friend std::ostream& operator<<( std::ostream& os, Foo const& foo )
吗? 最佳答案
执行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 }
}
关于debugging - 快速重载字符串转换的规范方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26361535/