Schwache Referenzen innerhalb eines Blocks

Ich benutze eineNSOperationQueue und Schlange stehenNSOperationBlocks. Jetzt haben Blöcke einen starken Bezug zu allen Instanzen im Block, und das aufrufende Objekt hat auch einen starken Einfluss auf den Block. Es wurde daher empfohlen, Folgendes zu tun:

__weak Cell *weakSelf = self;
NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock:^{
        UIImage *image = /* render some image */
        /* what if by the time I get here self no longer exists? */
        [[NSOperationQueue mainQueue] addOperationWithBlock:^{
            [weakSelf setImageViewImage:image];
        }];
    }];
    [self.renderQueue addOperation:op];

Meine Frage lautet also: Wenn das Rendern des Bildes abgeschlossen ist und diese Linie zurückkehrt, wird dieCell Objekt existiert nicht mehr (es wurde freigegeben, möglicherweise aufgrund der Wiederverwendung von Zellen, die etwas schwierig zu formalisieren ist). Wenn ich zum Zugang gehe[weakSelf setImageViewImage:], wird das a verursachenEXC_BAD_ACCESS Error?

Derzeit versuche ich, die Ursache meines Problems zu ermitteln, und denke, dass dies möglicherweise etwas damit zu tun hat.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage