iOS开发 - Block块的使用(二)内存管理和特性
2014-11-01 21:09
387 查看
Block存放的位置
block块可以存在堆、栈和全局区中
堆 stack 和 栈 heap
复制block块后,block位于堆上,带有_block 标记的变量会变动,并存储到堆中
全局区
block块可以存在堆、栈和全局区中
堆 stack 和 栈 heap
void foo() { __block int i = 1024; __block int j = 1; void (^blk)(void); void (^blkInHeap)(void); blk = ^{ printf("%d, %d\n", i, j);};//blk在栈里 j ++ ; blkInHeap = Block_copy(blk);//blkInHeap在堆里 或者 blkInheap = [Block_copy copy]; blk(); // 此时打印的是 1024 ,2 }
复制block块后,block位于堆上,带有_block 标记的变量会变动,并存储到堆中
全局区
static int(^maxIntBlock)(int, int) = ^(int a, int b){return a>b?a:b;}; - (void)fooBar { int(^maxIntBlockCopied)(int, int) =[maxIntBlock copy]; } void foo() { int(^maxIntBlockCopied)(int, int) = Block_copy(maxIntBlock); }
相关文章推荐
- iOS开发概述UIkit动力学,讲述UIKit的Dynamic特性。以及手势和动力结合使用的案例
- IOS开发之Block的使用和内存管理
- IOS开发笔记之二十四——开发中内存管理的使用技巧汇总
- iOS开发之UITableView的滚动优化以及隐藏特性的使用
- iOS开发之使用block块进行数据遍历的方法
- iOS开发 - Block块的使用(三)在iOS开发中的使用
- iOS开发>学无止境 - WKWebView的新特性与使用
- iOS开发之使用block块进行数据遍历的方法
- ios开发-OC面向对象的三个特性-多态的使用
- IOS开发---OC语言-㉙内存管理:block的使用
- iOS开发 - Block块的使用(一)基础概念
- IOS开发里面使用RGB颜色
- IOS开发笔记-定时器的使用
- 在Visual Studio中使用MonoTouch开发iOS应用程序(上):环境配置
- 使用MonoTouch进行iOS开发
- 在iOS开发中如何高效使用静态库
- 【Cocos2d游戏开发之十二】浅析使用C++/C/OC进行iOS游戏混编出现“failed with exit”问题与小结;
- Flash开发iOS应用全攻略(三)——如何使用iOS开发者授权以及如何申请证书
- IOS开发中委托代理(degegate)的理解和使用示例
- 【iOS-Cocos2d游戏开发之十一】使用Box2d物理系统以及在cocos2d框架添加Box2d物理系统lib包的方法