【发布时间】:2014-07-23 06:10:49
【问题描述】:
有没有办法快速打印变量的运行时类型?例如:
var now = NSDate()
var soon = now.dateByAddingTimeInterval(5.0)
println("\(now.dynamicType)")
// Prints "(Metatype)"
println("\(now.dynamicType.description()")
// Prints "__NSDate" since objective-c Class objects have a "description" selector
println("\(soon.dynamicType.description()")
// Compile-time error since ImplicitlyUnwrappedOptional<NSDate> has no "description" method
在上面的示例中,我正在寻找一种方法来表明变量“soon”的类型为ImplicitlyUnwrappedOptional<NSDate>,或至少为NSDate!。
【问题讨论】:
-
@JasonMArcher 告诉我,如果您链接的问题在此问题 4 天后被问到,这怎么会是重复的?
-
关于测试 Swift 对象的类型或读取 Swift 对象的类型有很多问题。我们只是在寻找最好的问题来用作这个主题的“主”问题。建议的副本有一个更彻底的答案。这并不是说您做错了什么,只是我们正在努力减少混乱。
-
建议的副本没有回答相同的问题; Type.self 不能打印到控制台进行调试,它是用来传递给其他以 Types 为对象的函数。
-
OT:很奇怪 Swift 没有提供开箱即用的功能,并且需要摆弄如此低级的 C 库。值得报告错误吗?
-
伙计们,我在下面提供了我的答案。请看一下,让我知道这是否符合预期。