Stackoverflow, ein Startwert zuweisenUIControl Erweiterung für Persistenz
Ich arbeite UIControl zu erweitern, um sich einen einzigen Wert zuweisen. Dies ist so implementiert, dass beim Start ein Wert für die Persistenz vergeben werden kann. Mein Ziel ist es, dies so allgemein wie möglich zu tun, damit es leicht erweiterbar ist. Eine der Hauptkomponenten meines Ansatzes ist das Einschalten des UIControl-Typs. Zum Beispiel, wenn es ein Schalter ist, muss ich ein bool zuweisen und wenn es eine Textansicht ist, muss ich eine Zeichenfolge zuweisen. Doch es gibt mir ein paar Fehler unten angegeben:
Cast von ‚UIControl‘ an unabhängigem Typ ‚UITextView‘ nicht immer
Expressionsmuster vom Typ ‚Bool‘ kann nicht Werte vom Typ entspricht ‚UIControl‘
Ich verstehe, dass dieser Code völlig falsch ist, aber ich habe keinen anderen Ansatz gefunden. Was ist Ihr Vorschlag, diese Methode zu implementieren? Bin ich auf dem richtigen Weg?
extension UIControl {
func assignValue(value: Any?){
switch(self){
case self is UISwitch:
(self as! UISwitch).isOn = value as! Bool
case self is UITextView:
(self as! UITextView).text = value as! String
default:
break
}
}
}
Danke, Macro
Ich reparierte eine meiner Fehler von „Fall selbst, wo selbst UISwitch ist“ und fügte hinzu, aber es wird immer noch nur einen Wert zurückgeben. Mein Ziel ist, dass diese Methode von allen UIControls vererbt und zum Setzen des Wertes verwendet wird. Ich möchte eine Liste von Steuerelementen durchlaufen, um ihren Status festzulegen. Hilft das zur Klärung? – macrocypher