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 weiterelets, 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.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage