[英]Switch with NSData or Data Swift 3
我有一个存储在数据类型中的值。 打印时:
debugPrint("/(batteryLevel as NSData)"
我得到以下信息: <05>
我想用此结果创建一个开关。
`let testBatteryStatus:NSData = BluejayManager.shared.batteryStatus as! NSData
switch testBatteryStatus {
case <05> : print("print")
default: print("nope")
}`
但是会引发错误。 “ <”无效。 因此,当值是<05>时,它将充电;当<04>严重时,等等。 任何指导都适用。 提前致谢。
在Swift中的switch语句中,您可以使用Strings,Ints,Tuples,还可以进行诸如值绑定之类的整洁事情,并使用where语句。 AFAIK,没有像您尝试使用<05>
编写的文字NSData类型。 这就是引发错误的原因。
此外,您打印了NSData。 这会将NSData“字符串化”为可打印的格式,这就是为什么您认为可以在switch语句中对此进行匹配的原因。
我的建议是将NSData转换为String或Int(您的情况似乎更适合Int),然后进行匹配。
例如
var batteryInt: Int = 0
let batteryData:NSData = BluejayManager.shared.batteryStatus as! NSData
batteryData.getBytes(&batteryInt, length: MemoryLayout<Int>.size)
switch batteryInt {
case 5 : print("yes!")
default: print("nope!")
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.