簡體   English   中英

使用NSData或Data Swift 3進行切換

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM