Ich habe eine Swift-Struktur, in der zwei der Membervariablen sind Verschlüsse:Zuordnung Verschluss Variable in initialiser auf struct
struct SettingsItem {
var title: String = ""
var textColor: UIColor = #colorLiteral(red: 0, green: 0, blue: 0, alpha: 1)
var selected:() -> Bool = { return false }
var action:() -> Void = { }
}
Wenn ich versuche, eine Instanz dieser Struktur zu erstellen, erhalte ich einen Fehler User of unresolved identifier 'selected'
. Beispiel:
var settingsItem = SettingsItem(title: "Title", selected = { return true }, action = {})
Wenn ich die Variablen separat zuweisen, es funktioniert:
var settingsItem = SettingsItem()
settingsItem.title = ""
settingsItem.selected = { return true }
Wie kann ich diesen Fehler beheben? Ich erstelle ein großes Array von SettingsItem
s, so wird es viel sauberer Code sein, wenn ich Initialisierer anstelle der ausführlicheren Option verwenden kann.
Das erste Problem nennen kann, ist, dass die Argumente sind als 'ausgewählt: ...', nicht 'ausgewählt = ...' –
Und das zweite Problem ist, dass textColor: fehlt. Der Standardinitialisierer hat keine Standardwerte. –
Und das andere Problem ist, dass Sie sich auf Standard-Initialisierer verlassen, der ALLE Eigenschaften enthält. Fügen Sie textColor hinzu, oder schreiben Sie Ihren eigenen Initialisierer. –