2016-03-24 5 views
0

私はそれらを同じように扱うことができるように、いくつかの既存のクラスを1つのカスタムプロトコルにグループ化しようとしています。既存のクラスにプロトコル準拠を追加し、実装があるかどうかをチェックしますか?

if let template as? CLKComplicationTemplateRingable { 
    print("\(template.fillFraction)") 
} 

それはない:私はこれを行うとき、私はこれを行うことはできませんどのように来る

protocol CLKComplicationTemplateRingable { 
    var fillFraction: Float { get set } 
} 

extension CLKComplicationTemplateCircularSmallRingText: CLKComplicationTemplateRingable { 

} 

extension CLKComplicationTemplateModularSmallRingText: CLKComplicationTemplateRingable { 

} 

:たとえば、私はこのような単一のプロトコルの下で一緒にグループこれらの2つのクラスをしたいのですがコンパイルすると、次のエラーが表示されます。Variable binding in a condition requires an initializer

私はこれに正しく近づいていますか?どんなアドバイスや助けも大歓迎です!

答えて

1

このようにそれを実行します。

if let template = template as? CLKComplicationTemplateRingable { 
    print("\(template.fillFraction)") 
} 
:バリアントは次のようになり、 "許可すれば"

if template is CLKComplicationTemplateRingable { 
    print("\(template.fillFraction)") 
} 

関連する問題