在枚举中执行函数

时间:2016-05-09 08:36:04

标签: ios swift enums

我试图在枚举中执行一个函数,但在执行此代码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
        }
    }

}

2 个答案:

答案 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()
}