Я понимаю, что вы должны копировать блоки, чтобы они оставались после выхода из стекового фрейма. Но как это применимо к выделенным в стеке блокам, используемым во вложенном блоке, как в следующем примере кода:
- doSomethingFunkyThenCall:(void(^)(int someValue))callback
{
[[NSOperationQueue currentQueue] addOperationWithBlock:^{
// ... do some work here, potentially nesting into further blocks ...
callback(result);
}];
}
Очевидно, что кадр стека doSomethingFunkyThenCall:
завершится до выполнения обратного вызова, поэтому его придется скопировать. Но произойдет ли это автоматически при вызове на addOperationWithBlock:
или мне придется делать это вручную?