Ręczny czas życia obiektu za pomocą ARC

Sprawdź następujący kod i załóżmy, że został skompilowany w ARC:

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

Chociaż kolejka operacji jest zadeklarowana jako zmienna lokalna, jej czas życia przekracza zakres metody, o ile ma ona uruchomione operacje.

Jak to osiągnąć?

AKTUALIZACJA:

Doceniam przemyślane komentarze Roba Mayoffa, ale myślę, że nie zadałem poprawnie pytania. Nie zadaję konkretnego pytania o NSOperationQueue, ale raczej ogólne pytanie o czas życia obiektu w ARC. W szczególności moje pytanie brzmi:

Jak w ramach ARC obiekt może uczestniczyć w zarządzaniu swoim życiem?

Jestem programistą od bardzo dawna i doskonale zdaję sobie sprawę z pułapek takich rzeczy. Nie chcę być pouczany, czy to dobry, czy zły pomysł. Myślę, że ogólnie jest źle. Moje pytanie jest raczej akademickie:Niezależnie od tego, czy jest to dobry czy zły pomysł, jak to zrobić w ARC i jaka jest konkretna składnia, aby to zrobić?

questionAnswers(4)

yourAnswerToTheQuestion