打印 UIInterfaceOrientation 类型变量值的最简单方法是什么?
What's the easiest way to print the value of a variable of type UIInterfaceOrientation?
在调试我的应用程序时,我想打印出 UIInterfaceOrientation
类型的局部变量 orien
的值。
我试过 print("\(orien")
但它打印了:
UIInterfaceOrientation
...这显然没用
然后我尝试了 dump(orien)
,它产生了另一个无用的输出:
- __C.UIInterfaceOrientation
在Xcode中,我设置了一个断点并右击变量并选择Print Description of
,结果产生:
Printing description of orien:
(UIInterfaceOrientation) orien = <variable not available>
我最后写了:
extension UIInterfaceOrientation {
func dump() {
switch self {
case .portrait: print("Interface orientation is Portrait")
case .portraitUpsideDown: print("Interface orientation is Portrait upside down")
case .landscapeLeft: print("Interface orientation is Landscape left")
case .landscapeRight: print("Interface orientation is Landscape right")
case .unknown: print("Interface orientation is unknown")
}
}
}
有更好的解决方案吗?
顺便说一句,这个问题也发生在 CGFloat 上 — XCode 的调试器将其打印为 <variable not available>
。
你不能只打印枚举案例的原始值吗?显然,这是不可能的,因为它 returns 是一个 Int,因为 UIInterfaceOrientation
是 Int 的枚举。
编辑:以下代码可能会有所帮助,因为它使用变量创建了描述。
extension UIInterfaceOrientation {
public var description: String {
switch self {
case .landscapeLeft: return "landscapeLeft"
case .landscapeRight: return "landscapeRight"
case .portrait: return "portrait"
case .portraitUpsideDown: return "portraitUpsideDown"
case .unknown: return "unknown"
}
}
}
添加后,您可以通过以下方式使用description
:
UIInterfaceOrientation.landscapeLeft.description
landscapeLeft
在调试我的应用程序时,我想打印出 UIInterfaceOrientation
类型的局部变量 orien
的值。
我试过 print("\(orien")
但它打印了:
UIInterfaceOrientation
...这显然没用
然后我尝试了 dump(orien)
,它产生了另一个无用的输出:
- __C.UIInterfaceOrientation
在Xcode中,我设置了一个断点并右击变量并选择Print Description of
,结果产生:
Printing description of orien:
(UIInterfaceOrientation) orien = <variable not available>
我最后写了:
extension UIInterfaceOrientation {
func dump() {
switch self {
case .portrait: print("Interface orientation is Portrait")
case .portraitUpsideDown: print("Interface orientation is Portrait upside down")
case .landscapeLeft: print("Interface orientation is Landscape left")
case .landscapeRight: print("Interface orientation is Landscape right")
case .unknown: print("Interface orientation is unknown")
}
}
}
有更好的解决方案吗?
顺便说一句,这个问题也发生在 CGFloat 上 — XCode 的调试器将其打印为 <variable not available>
。
你不能只打印枚举案例的原始值吗?显然,这是不可能的,因为它 returns 是一个 Int,因为 UIInterfaceOrientation
是 Int 的枚举。
编辑:以下代码可能会有所帮助,因为它使用变量创建了描述。
extension UIInterfaceOrientation {
public var description: String {
switch self {
case .landscapeLeft: return "landscapeLeft"
case .landscapeRight: return "landscapeRight"
case .portrait: return "portrait"
case .portraitUpsideDown: return "portraitUpsideDown"
case .unknown: return "unknown"
}
}
}
添加后,您可以通过以下方式使用description
:
UIInterfaceOrientation.landscapeLeft.description
landscapeLeft