- // 全局块
- void(^globalBlock)()=^{
- NSLog(@"global Block!!!");
- };
- int main()
- {
- // 局部块
- void(^localBlock)()=^{
- NSLog(@"local Block!!!");
- };
-
- // 堆块
- void (^heapBlcok)() = [^{ NSLog(@"heap block!!!");} copy];
-
- return 0;
- }
复制代码
看《effective oc..》书上说 块也是对象, 块分为全局块,局部块(就是在栈上分配的块),和堆块(在堆上分配的);既然是对象,那数据肯定是分配在堆上的。又何来 局部块和堆块区别呢? 也就是存放对象变量存放位置不一样罢了。使用时也没太大区别啊
另代码测试还有一些奇怪现象, 对块进行手工release似乎不起作用阿。 块依然可以正常使用, 莫非块的释放是不能手动进行的?????
|