Swift-Variable wird vor der Verwendung nicht initialisiert (wird aber nicht verwendet)
erzeit habe ich einen schnellen Code wie diesen:
class C {
let type: Type;
var num = 0;
init() {
self.type = Type({ (num: Int) -> Void in
self.num = num;
});
}
}
Der Swift-Compiler verweigert dies mit der Begründung, dass ich auf @ verwiesen habself.type
bevor es initialisiert wird, obwohl das eindeutig völlig falsch ist. Außerdem kann ich die in anderen Fragen / Antworten gefundene Problemumgehung nicht verwenden, da dastype
ist nicht optional und unveränderlich, daher kann es nicht mit @ initialisiert werdnil
sinnlos zuerst.
Wie kann ich den Swift-Compiler veranlassen, diesen perfekt gültigen Code zu akzeptieren?
Dies hat nichts mit einer vorzeitigen Rückkehr vom Initialisierer zu tun. Der Rückruf wird asynchron ausgeführt - er wird gespeichert und später verwendet.
Ich habe auch ein paar weiterelet
s, die nach diesem initialisiert werden. Ich müsste sie drehenall in veränderbare Optionen umwandeln, obwohl sie nicht optional sind und nicht verändert werden können.