如果我的块没有捕获变量,我会得到__NSGlobalBlock__.
Class class = [^{
} class];
NSLog(@"%@", NSStringFromClass(class));
Run Code Online (Sandbox Code Playgroud)
但是,如果我捕获变量,我会得到 __NSStackBlock__
int foo = 3;
Class class = [^{
int foo1 = foo;
} class];
NSLog(@"%@", NSStringFromClass(class));
Run Code Online (Sandbox Code Playgroud)
为什么需要在全局内存中阻塞?__NSGlobalBlock__对比什么优势__NSStackBlock__?
我阅读了Block Implementation Specification,但我不明白为什么__NSGlobalBlock__我只为一种用途创建块。