初探block
来源:互联网 发布:yiishop2.0 源码 编辑:程序博客网 时间:2024/05/17 01:02
近期看了几个项目中都有用到block,仔细看了看觉得block在传递参数和回调方面非常的好用。特总结写出一篇博客,有不对的地方欢迎大家指正。
1.首先在类A.h中声明一个block,因为要在外部使用,所有可以直接copy声明
@property (copy,nonatomic)void(^BlockType)(BOOL success,BOOL cancle);
alloc 一个A的对象 a,然后调用
[a setBlockType:^(BOOL success, BOOL cancle) { if (success&&cancle) { NSLog(@"回调block传递参数成功"); } }];
A.m里面只要调用
BlockType(YES,YES);
你就会看到输出结果了
2.这里再写点关于block的内存管理方面的东西
block本身是像对象一样可以retain,和release。但是,block在创建的时候,它的内存是分配在栈(stack)上,而不是在堆(heap)上。他本身的作于域是属于创建时候的作用域,一旦在创建时候的作用域外面调用block将导致程序崩溃。比如下面的例子。
typedef void(^BlockCC)(void);BlockCC _block;
- (void)viewDidLoad{ [superviewDidLoad]; int number = 1;_block = ^(){ NSLog(@"number %d", number);};}
- (IBAction)buttonDidClick:(id)sender {_block();}我一点击按钮,项目就崩溃了,修改代码如下
_block = ^(){ NSLog(@"number %d", number);};_block = [_block copy]
- 初探block
- block初探
- 初探Block
- Block初探
- iOS block 初探
- ios block 初探
- block 初探 关于block的用法
- Block的使用--初探Block
- ios学习之block初探
- OC中的block使用初探
- iOS学习笔记-----Block初探
- 个人之对于Block的初探究
- 初探iOS闭包实现Block
- 初探iOS中的Block(代码块与闭包)
- 初探swift语言的学习笔记十(block)
- 初探swift语言的学习笔记十(block)
- 初探swift语言的学习笔记十(block)
- iOS开发学习笔记----objective-c之block初探
- js实现输入框仿html5 placeholder功能
- 2034 ——人见人爱A-B
- matlab实现发邮件
- rcp(插件开发)插件B需要引用插件A中的jar包-如何处理依赖关系
- hdu 1281 (最大匹配)
- 初探block
- android adb命令 unable to connect to 192.168.1.155:5555
- hudson中配置另外一台机器上源码的构建
- 最棒的逆向工具 IDA Plus 6.4 hex-rays decopiler (arm x86) 1.8.0.130306
- ctags
- 从命令行取linux中eth0的IP地址学习awk
- android中用xml文件实现阴影效果
- Facebook Tackles (Really) Big Data With ‘Project Prism’
- free