Why I can't define enumeration with raw values like this?
enum Edges : (Double, Double) {
    case TopLeft = (0.0, 0.0)
    case TopRight = (1.0, 0.0)
    case BottomLeft = (0.0, 1.0)
    case BottomRight = (1.0, 1.0)
}
Why I can't define enumeration with raw values like this?
enum Edges : (Double, Double) {
    case TopLeft = (0.0, 0.0)
    case TopRight = (1.0, 0.0)
    case BottomLeft = (0.0, 1.0)
    case BottomRight = (1.0, 1.0)
}
Raw values can be strings, characters, or any of the integer or floating-point number types.
But there is an alternative solution for you:
enum Edges {
    case TopLeft
    case TopRight
    case BottomLeft
    case BottomRight
    func getTuple() -> (Double, Double) {
        switch self {
        case .TopLeft:
            return (0.0, 0.0)
        case .TopRight:
            return (1.0, 0.0)
        case .BottomLeft:
            return (0.0, 1.0)
        case .BottomRight:
            return (1.0, 1.0)
        }
    }
}
let a = Edges.BottomLeft
a.getTuple() // returning (0, 1)
A tuple cannot be a raw value type of enum. From The Swift Programming Language:
Raw values can be strings, characters, or any of the integer or floating-point number types.
You could create a custom getter though:
enum Edges {
    case TopLeft, TopRight, BottomLeft, BottomRight
    var rawValue: (Double, Double) {
        switch self {
            case .TopLeft: return (0, 0)
            case .TopRight: return (1, 0)
            case .BottomLeft: return (0, 1)
            case .BottomRight: return (1, 1)
        }
    }
}