[10秒学会] - iOS 3种常用形式block
2016-05-10 00:00
447 查看
摘要: iOS 3种常用形式block
1:把block保存到对象中,恰当时机的时候才去调用
2.把block当做方法的参数使用,外界不调用,都是方法内部去调用,Block实现交给外界决定.
3.把block当做方法的返回值,目的就是为了代替方法.,block交给内部实现,外界不需要知道Block怎么实现,只管调用
1:把block保存到对象中,恰当时机的时候才去调用
[code=plain]// block:ARC使用strong,非ARC使用copy // block类型:void(^)() @property (nonatomic, strong) void(^operation)();
[code=plain]- (void)block1 { Person *p = [[Person alloc] init]; void(^block)() = ^() { NSLog(@"执行对象中block"); }; p.operation = ^(){ NSLog(@"执行对象中block"); }; p.operation = block; _p = p; } - (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { _p.operation(); }
2.把block当做方法的参数使用,外界不调用,都是方法内部去调用,Block实现交给外界决定.
[code=plain]// name:类型的别名 typedef void(^BlockName)(); // 参数类型:block类型 - (void)eat:(void(^)())block; //- (void)eat:(BlockName)block;
[code=plain]Person *p = [[Person alloc] init]; void(^block)() = ^{ NSLog(@"吃东西"); }; [p eat:block]; // 传入block给参数的Block赋值 [p eat:^{ NSLog(@"吃东西"); }];
3.把block当做方法的返回值,目的就是为了代替方法.,block交给内部实现,外界不需要知道Block怎么实现,只管调用
[code=plain]- (void(^)(int))run; Person *p = [[Person alloc] init]; [p run:2]; p.run(2); void(^run)() = p.run; run();
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用中UISearchDisplayController搜索效果的用法
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- iOS推送的那些事
- IOS 改变键盘颜色代码