在Xcode调试器中显示debugDescription
个对象的值时,我试图覆盖NSDate
属性。
我的扩展程序代码:
import Foundation
extension NSDate {
public override var debugDescription: String {
return "FOOFOOFOO"
}
public func yeah() -> String {
return "yeah!"
}
}
我已经确认带有扩展代码的文件包含在测试项目目标中,因为我可以在调试器的输出中成功调用yeah
函数和print
。但是,我似乎无法使用debugDescription
属性。
请注意,我的实际目标是执行我之前在Objective-C中所做的操作(有关详细信息,请参阅this question),但到目前为止还在如何在Swift中进行操作。
答案 0 :(得分:1)
是Swift中的两个独立协议
struct S : CustomStringConvertible, CustomDebugStringConvertible {
var description: String {
return "description"
}
var debugDescription : String {
return "debug description"
}
}
let s = S()
print(s) // description
debugPrint(s) // debug description
... 谢谢你得去Leo !!!
import Foundation
extension NSDate: CustomDebugStringConvertible {
public override var debugDescription: String {
return "FOO"
}
}
debugPrint(NSDate()) // FOO