web-dev-qa-db-fra.com

swift: Enum constante avec type et valeur

Je sais, la constante d'énumération devrait être comme ça dans Swift

enum CompassPoint {
    case North
    case South
    case East
    case West
}

Mais comment puis-je attribuer une valeur au premier élément, comme le code Objective-C comme ci-dessous

enum ShareButtonID : NSInteger
{
   ShareButtonIDFB = 100,
   ShareButtonIDTwitter,
   ShareButtonIDGoogleplus

}ShareButtonID;
34
Mani

Vous devez donner un type à l'énumération, puis définir des valeurs, dans l'exemple ci-dessous North est défini comme 100, Le reste sera 101, 102 etc, tout comme dans C et Objective-C.

enum CompassPoint: Int {
    case North = 100, South, East, West
}

let rawNorth = CompassPoint.North.rawValue // => 100
let rawSouth = CompassPoint.South.rawValue // => 101
// etc.

Mettre à jour: Remplacez toRaw() par rawValue.

89
kmikael