Почему блок 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);
                                  }];
}

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

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

8
задан 0xSina 11 July 2012 в 13:40
поделиться