自定义打印协议CustomStringConvertible和CustomDebugStringConvertible
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| class Person { var age: Int = 10 }
extension Person: CustomStringConvertible { var description: String { "person age: \(age)" } }
extension Person: CustomDebugStringConvertible { var debugDescription: String { "debugPerson age: \(age)" } }
|
调用
1 2 3
| let p = Person() print(p) debugPrint(p)
|
打印结果
1 2
| person age: 10 debugPerson age: 10
|
当处于Release模式的时候,debugPrint也仍然会输出。目前看不出区别
当在控制台po的时候,调用的是CustomDebugStringConvertible的debugDescription方法