Dlaczego blok Objective-C nadal działa bez kopiowania go do sterty?
W mojej klasie mam prostą metodę:
- (void)getFormWithBlock:(DataCenterResultBlock)block {
[SomeClass doSomeLongOperationWithParam:someParam
completionBlock:^(NSData *data, NSURLResponse *response) {
//Success
block(aVar, YES);
} errorBlock:^(NSError *error) {
//Failed
block(nil, NO);
}];
}
Czytałem, że powinieneś kopiować bloki na stertę, jeśli robisz coś asynchronicznie, ponieważ są one przydzielane na stosie i gdy drzewo połączeń przewinie się, zniknie.
Ale tutaj nie kopiuję go na stertę, ale nadal nie mam awarii. Czemu? Dzięki