switch文のこのエラーの原因は何ですか?すべてのパターンエラーでスウィフト "h"がバインドされている必要があります - スイッチの問題
私は基本的にhを1時間の変数として使用しようとしていますが、これはnilではないことを確認しています(時間はオプションの値で、17より大きいかどうかを確認するためです)。私はどこかでこれが間違っていることを知っていますが、その厄介な小さな「hはあらゆるパターンに縛られなければならない」というエラーですか?
おかげ
let date = NSDate()
let calendar = Calendar.current
let components = calendar.dateComponents([.hour], from: date as Date)
let hour = components.hour
switch hour {
case let h, (h as Int) != nil, h >= 17:
return true
default:
return false
}
これは、パターンマッチングを使用しているように見えるしませんので、あなたの代わりにif文でそれをスローすることをお勧めします。 – zneak
私は最後にif文にスローしましたが、なぜそれを示唆していますか?私のここでの試みは、letとオプションのバインディングを作成して、 'h'がオプション(時間)のアンラップされた値になるようにしたものです。 – user7024499