Warum funktioniert der Objective-C-Block immer noch, ohne ihn auf den Heap zu kopieren?
Ich habe eine einfache Methode in meiner Klasse:
- (void)getFormWithBlock:(DataCenterResultBlock)block {
[SomeClass doSomeLongOperationWithParam:someParam
completionBlock:^(NSData *data, NSURLResponse *response) {
//Success
block(aVar, YES);
} errorBlock:^(NSError *error) {
//Failed
block(nil, NO);
}];
}
Ich habe gelesen, dass Sie Blöcke auf den Heap kopieren sollten, wenn Sie etwas asynchron tun, weil sie auf Stapel zugewiesen sind und sobald der Aufrufbaum zurückgespult wird, wird es verschwunden sein.
Aber hier kopiere ich es nicht auf Haufen, aber ich bekomme trotzdem keinen Absturz. Warum? Vielen Dank