iOS-block三种应用场景
2016-05-21 13:05
381 查看
1.把block保存成对象中的属性,在恰当的时刻调用
1.png
2.把block当成方法的参数使用,block的调用在是在方法内部,在外界写block的实现(最常用)
2.png
3.把block当成方法的返回值(比较少用)
3.png
2.在ViewController类中
2.在ViewController类中
2.在ViewController类中
1.png
2.把block当成方法的参数使用,block的调用在是在方法内部,在外界写block的实现(最常用)
2.png
3.把block当成方法的返回值(比较少用)
3.png
示例1
1.在Person类中@interface Person : NSObject @property (nonatomic,strong) void(^myBlock)(int,int); @end
2.在ViewController类中
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { int a = 12; int b = 11; Person *p = [[Person alloc] init]; p.myBlock(a,b); }
示例2
1.在Person类中@interface Person : NSObject - (void)eat:(void(^)())block; @end @implementation Person - (void)eat:(void (^)())block { block(); } @end
2.在ViewController类中
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { // 方式1.先定义,在赋值 // void(^block)() = ^() { // NSLog(@"吃东西"); // }; // // [p eat:block]; // 方式2.直接写block [p eat:^{ NSLog(@"吃东西"); }]; }
示例3
1.在Person类中@interface Person : NSObject - (void(^)(int))run; @end @implementation Person - (void (^)(int))run { return ^(int b){ NSLog(@"跑了--%d米",b); }; } @end
2.在ViewController类中
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { p.run(5); }
相关文章推荐
- ios的hitTest方法以及不规则区域内触摸事件处理方法
- IOS 开发 事件截断处理
- IOS 开发 手势 及事件传递机理
- IOS 开发 手势使用
- IOS中 Block用法进阶二 局部变量和全局变量在Block中的使用
- IOS中 Block用法进阶一
- iOS static变量
- iOS开发:发布证书无法安装,不能修改"System Roots"钥匙串
- 四步搞定NiosII工程路径改变
- IOS之定位详解
- 谈谈iOS Animation
- iOS 获取当前展示的页面
- iOS 7 修改默认布局从status bar 底部开始
- iOS 崩溃分析
- samsung bios configuration怎么设置U盘启动
- Make My Ostream!
- iOS内存话题: 弱引用下的懒加载
- Missing iOS Distribution signing identity问题解决
- iOS 开启后台运行
- iOS pushcontroller时自动隐藏tabbar