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

}

最佳答案

我可能会这样做而不是你想要做的:
在 ContentType 枚举一个 func :

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

10-08 05:46