2017-10-16 9 views
0

データ型に値が格納されています。
debugPrint("/(batteryLevel as NSData)"私は以下を取得します:<05>この結果でスイッチを作成したいと思います。
NSDataまたはData Swiftを使用したスイッチ3

ですが、エラーになります。 「<」は無効です。 したがって、値が< 05>それが充電しているとき、<4>重要な場合は、どんな指導も訴えるでしょう。 ありがとうございます。

答えて

1

Swiftのswitch文では、String、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!") 
} 
関連する問題