In Swift 1.2 gibt es ein neues Attribut mit Schließparametern in Funktionen, und wie in der Dokumentation angegeben:
Dies zeigt an, dass der Parameter immer nur aufgerufen wird (oder in einem Aufruf als @ noescape-Parameter übergeben wird), was bedeutet, dass er die Lebensdauer des Aufrufs nicht überleben kann.
Nach meinem Verständnis könnten wir vorher verwenden, [weak self]um nicht zuzulassen, dass der Abschluss einen starken Bezug zu z. B. seiner Klasse hat, und self könnte null oder der Fall sein, in dem der Abschluss ausgeführt wird, aber jetzt @noescapebedeutet dies, dass der Abschluss niemals ausgeführt wird wenn die Klasse deinitalisiert ist. Verstehe ich es richtig
Und wenn ich richtig @noescapeliege , warum sollte ich dann einen Verschluss verwenden, der eine reguläre Funktion enthält, wenn sie sich sehr ähnlich verhalten?
@noescapegarantiert, dass der Verschluss nicht ... asynchron verwendet wird". Das heißt, Sie können es nicht mit Netzwerkcode verwenden, der asynchron ausgelöst wird.