2014-09-18 5 views
32

In Xcode 6.1, die Aufzählungen toRaw und fromRaw Funktionen funktionieren nicht mehr:Swift Aufzählungen .toRaw und .fromRaw mit Xcode 6.1

enum TestEnum : String { 
    case A = "a" 
    case B = "b" 
} 

if let a = TestEnum.fromRaw("a") { 
    prinln(a.toRaw()) 
} 

Fehler:

'TestEnum' does not have a member named 'toRaw' 
'TestEnum.Type' does not have a member named 'fromRaw' 

Antwort

54

eine Enumeration von a Erstellen Verwenden Sie den Failable-Initialisierer mit rawValue, und rufen Sie den Rohwert mit dem Attribut rawValue ab.

if let a = TestEnum(rawValue: "a") { 
    println(a.rawValue) 
} 

Lesen Sie the changelog für weitere Informationen.

+1

Ich habe versucht, dem Link zum Changelog zu folgen, und ich habe einen Fehler in meinem Webbrowser erhalten, der besagt, dass meine Sitzung abgelaufen ist. – Kaydell

+0

Ich denke, @Chris Ritter hat eine bessere Antwort. So verwenden Sie die Eigenschaft: "rawValue", anstatt zu versuchen, die Methode "toRaw()" zu verwenden. – Kaydell

+1

... es ist die gleiche Antwort –

14

Es sieht so aus, als ob toRaw() und fromRaw() in Xcode 6.1 Beta (Build 6A1030) durch rawValue ersetzt wurden. Wenn CardSuits ein Enum und .Clubs ein Fall ist, dann erhalten Sie den Rohwert mit: let suit1 = CardSuits.Clubs.rawValue Das Ergebnis wird '1' sein, wenn .Clubs Rohwert '1' war Um den String abzurufen aus dem Rohwert übergeben Sie den Rohwert als Parameter der Aufzählung wie: let suit1 = CardSuits (rawValue: 1) (dies ist ein optionaler Wert) Das Ergebnis ist der Enum-Wert des Rohwerts '1', in Dieses Beispiel .Clubs

+0

Ich hatte dieses Problem, UND als ich zurück zu Xcode 6 wechselte, hatte ich noch die Fehler. Löschen des abgeleiteten Datenordners und Neukompilieren behoben. – calql8edkos

Verwandte Themen