2016-05-09 7 views
3

私は列挙型の中で関数を実行しようとしていますが、このコードを実行するとContentType.SaveContent("News")エラーが続いています:Use of instance member on type 'ContentType'; did you mean to use a value of type 'ContentType' instead?。なぜ型をStringに設定したのですか?enum内で関数を実行

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

...と、ちょうど良いスタイルのために、funcの大文字を与えていません...。

func saveContentInClass(type: String) { 
    guard let contentType = ContentType(rawValue: type) else { 
     return 
    } 
    contentType.saveContent() 
} 
:あなたの列挙型を使用するコードの他の部分で

func saveContent() { 
    switch self { 
    case .News: 
     print("news") 
    case .Card: 
     print("cards") 
    } 
} 

0

したがって、あなただけあなたがやろうとしているものである、型のインスタンスに、ないタイプ自体に適用することができ、static funcではありません。 funcの前にstaticを追加してください。 をContentTypeを列挙FUNCに:私はおそらく代わりに何をしようとすると、これを行うだろう