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