Schneller Integer-Typ, der in enum umgewandelt wird

8

Ich habe enum deklaration.

%Vor%

Und benutze es in einer Methode:

%Vor%

Wir alle wissen, dass wir das normalerweise so nennen können

%Vor%

Aber wenn ich es in einigen Delegaten aufrufen muss, wo der Ganzzahlwert nicht vorhersehbar ist, als wie er aufgerufen wird.

Zum Beispiel:

%Vor%

Hier wirft der Compiler einen Fehler Int is not convertible to 'OP_CODE' . Versucht hier viele Permutationen. Aber nicht in der Lage, es herauszufinden.

    
Kampai 27.11.2014, 10:45
quelle

2 Antworten

18

Sie müssen den Rohtyp der Enumeration angeben

%Vor%

addition hat einen Rohwert von 0 , substraction von 1 und so weiter.

und dann können Sie

tun %Vor%

Weitere Informationen finden Sie hier: Ссылка

für ältere Swift-Releases

Falls Sie eine ältere Version von swift verwenden, funktionieren Roh-Enumerations ein wenig anders. In Xcode & lt; 6.1, müssen Sie fromRaw() anstelle eines fehlbaren Initialisierers verwenden:

%Vor%     
Gabriele Petronella 27.11.2014, 10:50
quelle
7

Sie können Rohwerte in Ihrer Enum:

%Vor%

und verwenden Sie den fehlgeleiteten Initialisierer, der einen Rohwert als Eingabe verwendet:

%Vor%

Beachten Sie, dass code optional ist. Wenn der rohe Wert keiner gültigen Enumeration zugeordnet wird, gibt der Initialisierer nil zurück.

In Ihrem Fall:

%Vor%

Außerdem können Sie bei einer Instanz der Enumeration den zugehörigen Rohwert mit der Eigenschaft rawValue erhalten.

Hinweis: Enums haben sich in Xcode 6.1 ein wenig geändert. Wenn Sie eine frühere Version verwenden, lesen Sie @ GabrielePetronellas Antwort und die zugehörigen Kommentare.

    
Antonio 27.11.2014 10:54
quelle

Tags und Links