-2
votes

Accéder à une valeur de cas d'énumérations de type non brutes?

Donc, j'ai une énumération définie comme suit: xxx

J'ai une variable de type de carte de type défini comme suit: xxx

Comment puis-je accéder à la valeur de la dépôt de carte? Dans ce cas, j'essaie d'accéder à l'UISCREEN.MAIN.Bounds.Height - 100 Valeur de l'énumération. J'ai essayé d'y accéder avec xxx

mais malheureusement cela ne fonctionne pas. Quelqu'un sache comment je peux accéder à la valeur CGFLOAT de la position?


2 commentaires

Swift Enum + Valeurs associées Ce sont les mots-clés que vous manquez. Lire docs.swift.org/swift-book/languageGuide/enumerations.html # ID 148 par exemple.


Est-ce que cela répond à votre question? accéder à une valeur d'addition d'une association à Swift


3 Réponses :


1
votes

Vous devez utiliser un commutateur ici: xxx pré>

si vous le souhaitez comme une expression em>, vous pouvez faire quelque chose comme: p>

enum RelativeCardPosition {
    case top
    case middle
    case bottom
}

struct CardPosition {
    let relativeCardPosition: RelativeCardPosition
    let offset: CGFloat
    
    static func top(_ offset: CGFloat) -> CardPosition {
        CardPosition(relativeCardPosition: .top, offset: offset)
    }
    
    static func middle(_ offset: CGFloat) -> CardPosition {
        CardPosition(relativeCardPosition: .middle, offset: offset)
    }
    
    static func bottom(_ offset: CGFloat) -> CardPosition {
        CardPosition(relativeCardPosition: .bottom, offset: offset)
    }
}


0 commentaires

1
votes

Vous pouvez créer une propriété calculé position à l'intérieur du Enum cartePosition et retour la valeur associée à chaque < code> cas , c'est-à-dire xxx


1 commentaires

Je ne pense pas que cela aurait dû être évité. Peut-être que TIM a perdu ses clés . Ne t'inquiète pas pour ça :)



1
votes

Pour obtenir la valeur associée à votre .bottom Vous utilisez si le cas indique Syntaxe xxx

Cela ne vous donnera qu'un Valeur pour .bottom et non pour l'un des autres cas énumants.


0 commentaires