Manuelle Objektlebensdauer mit ARC

Untersuchen Sie den folgenden Code und nehmen Sie an, dass er unter ARC kompiliert wurde:

- (void)foo {
    NSOperationQueue *oq = [[NSOperationQueue alloc] init];
    [oq addOperationWithBlock:^{
        // Pretend that we have a long-running operation here.
    }];
}

Obwohl die Operationswarteschlange als lokale Variable deklariert ist, geht ihre Lebensdauer über den Umfang der Methode hinaus, solange Operationen ausgeführt werden.

Wie wird das erreicht?

AKTUALISIEREN:

Ich schätze Rob Mayoffs gut durchdachte Kommentare, aber ich glaube, ich habe meine Frage nicht richtig gestellt. Ich stelle keine spezifische Frage zu NSOperationQueue, sondern eine allgemeine Frage zur Objektlebensdauer in ARC. Im Einzelnen lautet meine Frage wie folgt:

Wie kann ein Objekt unter ARC an der Verwaltung seines eigenen Lebens teilnehmen?

Ich bin schon sehr lange Programmierer und mir sind die Tücken einer solchen Sache sehr wohl bewusst. Ich möchte nicht wissen, ob dies eine gute oder eine schlechte Idee ist. Ich denke im Allgemeinen ist es eine schlechte. Meine Frage ist vielmehr akademisch:Ob es eine gute oder eine schlechte Idee ist oder nicht, wie würde man dies in ARC tun und wie lautet die spezifische Syntax dafür?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage