Ich habe gelesen, dass wenn ein solcher Block ausgeführt wird:
%Vor%sollte so gemacht werden:
%Vor%Ich möchte also eine Situation replizieren, in der weakSelf in der Mitte einer Blockausführung null erhält.
Also habe ich den folgenden Code erstellt:
* ViewController *
%Vor%* MyBlockContainer *
%Vor%Ich habe also erwartet, dass createBlockWeakyfy das Szenario erzeugen wird, das ich replizieren wollte, aber ich habe es nicht geschafft.
Die Ausgabe ist für createBlockWeakyfy und createBlockStrongify
gleich %Vor%Jemand kann mir sagen, was ich falsch mache?
Ihr dispatch_async
-Block erstellt eine starke Referenz. Wenn dieser Block auf Ihre MyBlockContainer
zugreift, um die Eigenschaft myBlock
zu erhalten, wird für die Lebensdauer dieses Blocks eine starke Referenz darauf erstellt.
Wenn Sie Ihren Code folgendermaßen ändern:
%Vor%Sie sollten die Ergebnisse sehen, die Sie erwarten.
Tags und Links objective-c ios objective-c-blocks weak-references