Wenn Sie eine Instanz einer Klasse erstellen, die einen Block enthält, zeigt sie auf diesen Block als starke Referenz, und wenn Sie auf das Objekt von diesem Block verweisen, zeigt es auf das Objekt mit einer starken Referenz, wodurch eine starke Referenz erstellt wird Zyklus.Blöcke und Objekte mit starkem Referenzzyklus?
Also, wenn ich dies tun würde:
__weak Employee *weakSelf = self;
myBlock = ^{
NSLog(@"%@", weakSelf);
}
So, jetzt der Block eine schwache Referenz auf das Objekt, aber angeblich ist es empfehlenswert, einen starken lokalen Bezug auf mich selbst innerhalb des Blockes zu erstellen, falls Das Objekt, auf das selbst verweist, wird freigegeben.
__weak Employee *weakSelf = self;
myBlock = ^{
Employee *innerSelf = weakSelf;
NSLog(@"%@", innerSelf);
}
Ich wollte ganz genau wissen und machen, dass ich das richtig verstehe, so zog ich ein Bild von dem, was ich denke, geschieht (wenn ich mich irre, bitte korrigieren Sie mich):
Eine korrigierte visuelle würde sehr geschätzt werden.