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ć?