いくつかの既存のクラスを 1 つのカスタム プロトコルにグループ化して、それらを同じように扱えるようにしようとしています。たとえば、次のように、これら 2 つのクラスを 1 つのプロトコルでグループ化したいと思います。
protocol CLKComplicationTemplateRingable {
var fillFraction: Float { get set }
}
extension CLKComplicationTemplateCircularSmallRingText: CLKComplicationTemplateRingable {
}
extension CLKComplicationTemplateModularSmallRingText: CLKComplicationTemplateRingable {
}
これを行うと、どうしてこれができなくなりますか。
if let template as? CLKComplicationTemplateRingable {
print("\(template.fillFraction)")
}
コンパイルされず、次のエラーが発生します。Variable binding in a condition requires an initializer
私はこれに正しく取り組んでいますか?アドバイスやヘルプをいただければ幸いです。