Entschuldigung, meine Antwort war spezifisch für die Art und Weise, wie ich diesen Beitrag in dem, was ich tun musste, verwendet habe. Für diejenigen, die auf diese Frage stoßen und nach einem Weg suchen, ein Gehäuse innerhalb eines Enums zu finden, ist dies der Weg (neu in Swift 2):
Bearbeiten: Kleinbuchstaben camelCase ist jetzt der Standard für Swift 3 Enum-Werte
// Aus Äpfel Dokumentation: Wenn der Rohwerttyp als String festgelegt ist und Sie den Fällen nicht explizit Werte zuweisen, wird jedem nicht zugewiesenen Fall implizit ein String mit demselben Text wie der Name dieses Falls zugewiesen.
enum Thema: String
{
case weiß, blau, grün, lavendel, grau
}
func ladeThema(thema: String)
{
// Prüft den String gegen den Rohwert jedes Enum-Werts (beachten Sie, dass die Prüfung zu einem nil-Wert führen könnte, da es optional ist, weshalb wir den if/let-Block einführen
if let testThema = Thema(rawValue: thema)
{
// testTheme hat an dieser Stelle garantiert einen Enum-Wert
self.someOtherFunction(testThema)
}
}
Für diejenigen, die sich darüber wundern, wie man in einem Enum aufzählt, sind die Antworten auf dieser Seite, die eine static var/let enthalten, die ein Array aller Enum-Werte enthält, korrekt. Der neueste Beispielcode von Apple für tvOS enthält genau diese Technik.
Das gesagt, sollten sie einen bequemeren Mechanismus in die Sprache integrieren (Apple, hört ihr zu?)!