0

我正在尝试将几个现有的类分组到一个自定义协议中,这样我就可以对它们一视同仁了。例如,我想将这两个类组合在一个协议下,如下所示:

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

我正确地接近这个吗?任何建议或帮助将不胜感激!

4

1 回答 1

1

像这样做:

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

“如果让”变体将是:

if let template = template as? CLKComplicationTemplateRingable {
    print("\(template.fillFraction)")
}
于 2016-03-24T03:34:25.247 回答