block
2016-04-27 13:55
309 查看
当我们在下级定义代码块block以及设置代码块属性的时候,
#import <Foundation/Foundation.h>
//定义一个block
typedef void (^ColorBlock)(UIColor *);
/**
* block的使用方法
*/
@interface MyBlock :
NSObject{
//把block当成一个属性
ColorBlock _changeColorBlock;
}
@property (nonatomic,copy)ColorBlock _changeColorBlock;
/**
* 根据传进来的block
把参数带过去 也可以定义一个属性block
把传过来的block赋值给属性block在完成处理后把block的参数传回去
*/
在下级实现文件里实现该方法
/**
* 根据传过来的block
把参数带过去
*/
-(void)changeColorWithBlock:(ColorBlock )color{
//让属性的block为这个参数
//_changeColorBlock=color;
//copy
一个 计数器加1
以免被释放
_changeColorBlock=Block_copy(color);
UIColor *mColor=[UIColor
redColor];
//color(mColor);
_changeColorBlock(mColor);
[NSTimer
scheduledTimerWithTimeInterval:3
target:self
selector:@selector(testtt)
userInfo:nil
repeats:NO];
//暂停5秒
// [NSThread sleepForTimeInterval:5.0];
// [self testtt];
}
-(void)testtt{
_changeColorBlock([UIColor
blackColor]);
}
我们在上级调用这个block,当下级代码执行到代码块的时候会触发我们上级用到的代码块,下级代码块的参数我们在上级代码块里可以获取,就是上级代码块的参数。
//调用block类里的方法
传个block过去
把参数带过来
[block changeColorWithBlock:^(UIColor *color){
//设置viewcontroller的背景色
用block带回来的参数
self.view.backgroundColor=color;
}];
#import <Foundation/Foundation.h>
//定义一个block
typedef void (^ColorBlock)(UIColor *);
/**
* block的使用方法
*/
@interface MyBlock :
NSObject{
//把block当成一个属性
ColorBlock _changeColorBlock;
}
@property (nonatomic,copy)ColorBlock _changeColorBlock;
/**
* 根据传进来的block
把参数带过去 也可以定义一个属性block
把传过来的block赋值给属性block在完成处理后把block的参数传回去
*/
在下级实现文件里实现该方法
/**
* 根据传过来的block
把参数带过去
*/
-(void)changeColorWithBlock:(ColorBlock )color{
//让属性的block为这个参数
//_changeColorBlock=color;
//copy
一个 计数器加1
以免被释放
_changeColorBlock=Block_copy(color);
UIColor *mColor=[UIColor
redColor];
//color(mColor);
_changeColorBlock(mColor);
[NSTimer
scheduledTimerWithTimeInterval:3
target:self
selector:@selector(testtt)
userInfo:nil
repeats:NO];
//暂停5秒
// [NSThread sleepForTimeInterval:5.0];
// [self testtt];
}
-(void)testtt{
_changeColorBlock([UIColor
blackColor]);
}
我们在上级调用这个block,当下级代码执行到代码块的时候会触发我们上级用到的代码块,下级代码块的参数我们在上级代码块里可以获取,就是上级代码块的参数。
//调用block类里的方法
传个block过去
把参数带过来
[block changeColorWithBlock:^(UIColor *color){
//设置viewcontroller的背景色
用block带回来的参数
self.view.backgroundColor=color;
}];
相关文章推荐
- 高性能Web服务器Nginx的配置与部署研究(15)Upstream负载均衡模块
- 7.1趣味递归之打印杨辉三角
- Linux驱动开发之 二 (那些必须要了解的硬件知识 之 处理器篇)
- 安卓自定义超级提示框Dialog
- 图
- 通过eclipse生成doc
- 在线文档预览方案-office web apps
- Linux常用命令的简单总结
- Shader 坐标转换
- 【小松教你手游开发】【系统模块开发】图文混排 (在label中插入表情)
- final关键字用于String时的一个问题
- Memcached 集群的高可用(HA)架构
- bzoj 1251: 序列终结者(splay)
- Swift学习 (长期)
- 【翻译】Xibo官方文档6-CMS Maintenance
- 会话管理之Cookie技术
- [LintCode] Super Ugly Number 超级丑陋数
- iOS -- 无开发者账号真机调试
- Python使用pip install psycopg2安装psycopg2包出现python setup.py egg_info failed with error code 1 in /tmp/pip-build-YtLeN3/psycopg2错误处理
- Cannot run program "/home/user/Android/Sdk/build-tools/23.0.2/aapt": error=2 No such file or directo