[英]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.