Почему блок 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);
}];
}
Я читал, что вы должны копировать блоки в кучу, если вы делаете что-то асинхронно, потому что они размещены в стеке, и как только дерево вызовов перематывает, оно исчезнет.
Но здесь я не копирую его в кучу, но все равно не получаю сбой. Зачем? Спасибо