我试图在枚举中执行一个函数,但在执行此代码ContentType.SaveContent("News")
时,我不断收到以下错误:Use of instance member on type 'ContentType'; did you mean to use a value of type 'ContentType' instead?
。当我将类型设置为String时,为什么不运行?
enum ContentType: String {
case News = "News"
case Card = "CardStack"
func SaveContent(type: String) {
switch type {
case ContentType.News.rawValue:
print("news")
case ContentType.Card.rawValue:
print("card")
default:
break
}
}
}
答案 0 :(得分:1)
它不是static func
,因此您只能将它应用于该类型的实例,而不是类型本身,这是您要尝试的。在static
之前添加func
。
...而且,只是为了好的风格,不要给func
大写字母......
答案 1 :(得分:1)
我可能会这样做,而不是你想要做的事情: 在ContentType枚举函数中:
func saveContent() {
switch self {
case .News:
print("news")
case .Card:
print("cards")
}
}
在将使用你的枚举的代码的其他部分:
func saveContentInClass(type: String) {
guard let contentType = ContentType(rawValue: type) else {
return
}
contentType.saveContent()
}