Block - 3
来源:互联网 发布:tp路由器mac地址修改器 编辑:程序博客网 时间:2024/05/21 10:35
Block的几种典型的使用:
1.某些系统框架(System Framework)类的方法中,参数类型为block,下面几种例子,数组,动画等
NSDictionary* dic = [NSDictionary dictionary]; dic = @{@"key1":@"values1", @"key2":@"values2", @"key3":@"values3"}; /** inline Block **/ [dic enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL* stop){ NSLog(@"@value for key : %@ is %@", key, value); }];
[UIView animateWithDuration:0.5f animations:^{ //动画效果 _flowButton.frame = CGRectMake(0, 0, _flowButton.bounds.size.width, _flowButton.bounds.size.height); } completion:^(BOOL finished){ //结束瞬间用block来完成一些开发者想要做的事情 _isFlowButtonDismiss = YES; }];
2.系统的很多方法从delegate 或 callback 模式 转变成回调block作为函数参数
例如Mac下NSPanel的一些方法,还有上面提到的UIView的动画是从beginAnimations函数:
+ (void)beginAnimations:(nullable NSString *)animationID context:(nullable void *)context; // additional context info passed to will start/did stop selectors. begin/commit can be nested
向block演变的等例子。
3.一些通知处理:
[[NSNotificationCenter defaultCenter] addObserverForName:@"TestNotification" object:nil queue:aNSOperationQueue usingBlock:^(NSNotification* notification){ NSLog(@"Notification: %@", notification); }];
4.GCD,这个太多了!
dispatch_async(dispatch_get_main_queue(), ^{ });
参考:
Reference : http://blog.csdn.net/smking/article/details/8424902
0 0
- Block -------3
- Block - 3
- Block高级用法:Block传值UI_12(3)
- Block高级用法:Block传值UI_12(3)
- iOS Block详解3
- Block 3:__block说明符
- iOS中block(3)
- Block
- block
- Block
- block
- block
- block
- block
- block
- block
- Block
- block
- 特征向量的几何含义
- [TwistedFate]指针
- js解析XMl文件,兼容IE、Firefox、谷歌
- 编译opencv该注意的问题
- 带方向性全排列
- Block - 3
- 从头学Qt Quick(1) --体验快速构建动态效果界面
- 关于更新sdk用的代理设置,以及hosts配置的了解
- zjnu 1186 乘积最大(区间DP)
- JetBrains个人版限时7折,错过不再
- Chapter5-标准I/O库(下)-「APUE读书笔记」
- 刚把ios 环境做好 截个图庆祝一下
- Mybatis 中在传参时,$ 和# 的区别
- CentOS 7/RHEL 7 网卡启动错误