【发布时间】:2018-01-09 12:27:28
【问题描述】:
这是我拥有的一些枚举:
enum SlideTemplate : Equatable {
case centered(content: SlideContent)
case horizontalSplit(leftContent: SlideContent, rightContent: SlideContent)
case empty
static func == (lhs: SlideTemplate, rhs: SlideTemplate) -> Bool {
// not sure what to do here
}
}
enum SlideContent {
case text(content: String)
case image(content: UIImage)
}
struct Slide {
let template: SlideTemplate
}
现在我想检查一下幻灯片的模板类型。
func getSlideTemplate(slide: Slide) {
if slide.template == SlideTemplate.centered {
print("centered")
} else if slide.template == SlideTemplate.horizontalSplit {
print("horizontalSplit")
} else {
print("empty")
}
}
上述功能显然不起作用。它指出:
“二元运算符'=='不能应用于'SlideTemplate'和'(SlideContent, SlideContent) -> SlideTemplate'类型的操作数”
我不确定如何解决这个问题。我查找了其他比较枚举的案例,但我无法将这些案例应用于这种情况。
【问题讨论】: