1

为什么 Apple 设计的块要在堆栈上分配,除非被复制?这种行为有什么好处?为什么不让它表现得像一个普通的 NSObject - alloc-init 它并自动进入堆?

4

1 回答 1

2

默认情况下将块放置在堆栈上的原因是速度。在块的生命周期小于包含它的堆栈函数的生命周期的常见情况下,这是一个非常好的优化。

http://www.cocoawithlove.com/2009/10/how-blocks-are-implemented-and.html

于 2013-05-09T22:17:03.977 回答