Bogen mit Blöcken und Behalten von Zyklen
-
13-12-2019 - |
Frage
Ich habe eine Klasse, die einen Block als Objekteigenschaft enthält:
generasacodicetagpre.wo sffailureblock:
generasacodicetagpre.Ich habe auch eine Operation, die auch als Objekteigenschaft (AFHTTPREQUERRESTOperation) deklariert ist, und ich möchte, dass er den Fehlerblock anrufen soll, sobald er abgeschlossen ist.
generasacodicetagpre.Ich bekomme eine Compiler-Warnung "Das Faszinieren von selbst" in diesem Block wird wahrscheinlich zu einem Haltezyklus führen ".Ich habe das Internet durchsucht, aber ich konnte keine anständige Lösung finden, warum dies zu einem Haltezyklus führt.Ich rufe nicht 'selbst' in den Block überall an.
Eine andere seltsame Sache ist, dass, wenn ich 'self.failureblock (Fehler)' schreibe, der Compiler mir keine Warnung gibt!
Kann mir jemand erklären, was los ist?Ich muss in ARC-Speichermanagement-Regeln ernsthaft fehlen, aber ich kann es nicht herausfinden.
Lösung
Wenn Sie auf "Fehler" im Betrieb des Betriebs Bezug nehmen, tun Sie wirklich "Selbst-> Aussagekolben" - also behält es sich implizit selbst.Was Sie tun können, ist eine automatische Variable zu erstellen.Über dem SelfoPerieren, dann verwenden Sie es im Block.[Wieder möchten Sie selbst -> Referenzen in diesem Block entweder vermeiden.]