我试图将几个现有的类组合成一个自定义协议,所以我可以对它们进行相同的处理。例如,我想在这样的单一协议下将这两个类组合在一起:
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
我接近这个吗?任何建议或帮助将不胜感激!
答案 0 :(得分:1)
这样做:
if template is CLKComplicationTemplateRingable {
print("\(template.fillFraction)")
}
“if let”变体将是:
if let template = template as? CLKComplicationTemplateRingable {
print("\(template.fillFraction)")
}