字符串是未声明的类型?

时间:2016-03-21 22:08:59

标签: swift

在下面的示例中,扩展功能具有未声明的参数类型。 String。咦?这是一个未申报的类型?

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

1 个答案:

答案 0 :(得分:4)

ColumnType内(您是,因为这是一个扩展程序,StringColumnType.String,而不是Swift.String。我强烈建议您不要重新定义stdlib类型像这样,但如果必须,你可以使用Swift包来引用Swift类型:

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