Wie man den zugehörigen Wert einer schnellen Aufzählung erhält, unabhängig vom Aufzählungsfall

Ich habe ein Objekt FormField, das zwei Eigenschaften hat: a Stringname, und einvalue was jeden Typ annehmen kann - daher habe ich es geschafftAny!. Allerdings wurde mir in @ gesa eine separate Frage, um eine Aufzählung mit zugeordneten Werten anstelle von @ zu verwendeAny!.

enum Value {
    case Text(String!)
    case CoreDataObject(NSManagedObject!)
}

class FormField {
    var name: String
    var value: Value?
    // initializers...
}

Dieser Ansatz macht es jedoch furchtbar wortreich, auf Nichtigkeit zu prüfen. Wenn ich eine Alert-Ansicht für alle fehlenden Felder im Formular anzeigen möchte, muss ich in einer switch-Anweisung für jeden Fall eine Nullprüfung wiederholen:

for field in self.fields {
    if let value = field.value {
        switch value {
        case .Text(let text):
            if text == nil {
                missingFields.append(field.name)
            }
        case .CoreDataObject(let object):
            if object == nil {
                missingFields.append(field.name)
            }
        }
    }
}

Ist es eine kürzere Möglichkeit, auf den zugeordneten Wert der Aufzählung zuzugreifen, unabhängig vom Typ? Wenn ich FormField.value zu einem @ macAny! der obige Code wäre so einfach wie:

for field in self.fields {
    if field.value == nil {
        missingFields.append(field.name)
    }
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage