Почему блок Objective-C все еще работает, не копируя его в кучу?

У меня есть простой метод в моем классе:

- (void)getFormWithBlock:(DataCenterResultBlock)block {
    [SomeClass doSomeLongOperationWithParam:someParam 
                                  completionBlock:^(NSData *data, NSURLResponse *response) {
                                      //Success
                                      block(aVar, YES);
                                  } errorBlock:^(NSError *error) {
                                      //Failed
                                      block(nil, NO);
                                  }];
}

Я читал, что вы должны копировать блоки в кучу, если вы делаете что-то асинхронно, потому что они размещены в стеке, и как только дерево вызовов перематывает, оно исчезнет.

Но здесь я не копирую его в кучу, но все равно не получаю сбой. Зачем? Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос