2016-03-21 23 views
2

以下の例では、拡張関数に宣言されていないパラメータ型があります。 String。ハァッ?それはどのように宣言されていないタイプですか?これは拡張機能ですので、あなたが、あるColumnType(内文字列は宣言されていない型ですか?

import UIKit 

enum ColumnType: String { 
    case StringArray 
    , IntArray 
    , DoubleArray 
    , String = "text" 
    , Int = "int" 
    , Double = "double" 
    , Unknown 
} 

extension ColumnType { 
    func fromRaw(rawValue: String) -> ColumnType { 
     if let valueType = ColumnType(rawValue: rawValue) { 
      return valueType 
     } 

     switch rawValue { 
     case "text", "Text": 
      return .String 
     case "int", "Int": 
      return .Int 
     case "double", "Double": 
      return .Double 
     default: 
      return .Unknown 
     } 
    } 
} 
+0

合法的な質問にはなぜダウン投票 –

答えて

3

StringColumnType.String、ないSwift.Stringです。私は非常にこのようなSTDLIBタイプを再定義に対してお勧めしますが、あなたがする必要がある場合は、スウィフトを参照することができますSwiftパッケージを使用して入力します。

func fromRaw(rawValue: Swift.String) -> ColumnType { 
+1

また、あなたが名前の衝突を避けるために、何か他のものに 'ColumnType.String'の名前を変更することができます理にかなって – Macondo2Seattle

+0

ああ、おかげでロブ?。。 。 –

関連する問題