block的作用
ios高效开发--blocks相关
1 typedef void (^CallBack)(int index);
2
3 @property(nonatomic, copy)CallBack callBack;

1 - (IBAction)click2:(id)sender
2 {
3 if(self.callBack)
4 self.callBack(2);
5 }
6
7
8 - (IBAction)click3:(id)sender
9 {
10 if(self.callBack)
11 self.callBack(3);
12 }


1 SecondViewController *secondController = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
2
3 secondController.callBack = ^(int index)
4 {
5 self.clickBtnLabel.text = [NSString stringWithFormat:@"click %d", index];
6 };
7
8 [self.navigationController pushViewController:secondController animated:YES];

- (void)enumerateKeysAndObjectsUsingBlock:(void (^)(id key, id obj, BOOL *stop))block;
简单举个例子,我们要在字典中根据key来查找某个value,然后把value记录下来。

1 NSArray *keyArray = @[@"aa", @"ddd", @"cc", @"bb", @"ww", @"111"];
2 NSArray *valueArray = @[@"apple", @"ios", @"mac", @"xcode", @"view", @"array"];
3 NSDictionary *enumDict = [NSDictionary dictionaryWithObjects:valueArray forKeys:keyArray];
4 __block NSString *valueString = nil;
5 [enumDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){
6 if([key isEqualToString:@"bb"])
7 {
8 valueString = obj;
9 *stop = YES;
10 }
11 }];

整个过程变的简单了。
还有在实现UIView动画的时候,block能让我们更加简单高效的实现很多特效。
1 [UIView animateWithDuration:0.5 animations:^{
2 animateView.alpha = 0.0;
3 } completion:^(BOOL finished) {
4 animateView.alpha = 1.0;
5 }];
这段代码实现了view透明度从1.0变到完全透明,用时0.5秒,当动画结束后重新显示view。
block的作用的更多相关文章
- Block知识点总结
block的作用 block用于保存一段代码 在适当的时候再使用 它是一种数据类型 block的定义格式: 返回值 (^block变量名)(形参列表) = ^(形参列表) { 需要执行的代码}; ...
- 简述block
block传值也适用于从后往前传值 先介绍block的基本知识 /** * 1.如何定义一个Block变量 2.怎样给定义的Block变量赋初值 3.如何冲定义Block类型 4.如何使用Block实 ...
- iOS开发--Block
iOS开发--Block 1.什么是Block,block 的作用 ui开发和网络常见功能实现回调,按钮的事件处理方法是回调方法以及网络下载后的回调处理 (1)按钮 target-action 一 ...
- 关于OC中的block自己的一些理解(一)
一.关于block 1.block的作用:保存一段代码. 2.苹果官方推荐的一种语法,类似于C语言的函数,但是比函数更加灵活. 3.^是block语法的标识. 二.block的用法 1)无返回值无参数 ...
- Objective-C之Block
Block基本概念 本小节知识点: [了解]什么是Block [理解]block的格式 1.什么是Block Block是iOS中一种比较特殊的数据类型 Block是苹果官方特别推荐使用的数据类型, ...
- Block 再学习 !
如何优雅的使用 Block? How Do I Declare A Block in Objective-C? 阮一峰的一句话解释简洁明了:闭包就是能够读取其它函数内部变量的函数 详情:http:// ...
- iOS 开发之Block
iOS 开发之Block 一:什么是Block.Block的作用 UI开发和网络常见功能的实现回调,按钮事件的处理方法是回调方法. 1. 按钮事件 target action 机制. 它是将一 ...
- block之--- 基本使用
block的类型:对象 官方文档描述如下 “Blocks are Objective-C objects, which means they can be added to collections l ...
- OC学习4——OC新特性之块(Block)
文章主要参考 关于OC中的block自己的一些理解(一) 对块的深入理解 浅析ios开发中Block块语法的妙用 1.关于block block的作用:保存一段代码. 苹果官方推荐的一种语法,类似 ...
随机推荐
- [计算机故障]笔记本无法启动,开机启动出现“Operating System Not Found”无法进系统
背景介绍:同事的一台索尼的笔记本,安装XP.开机启动出现“Operating System Not Found”无法进系统 诊断: 初步判断硬盘故障.但听声音,没有异响. 开机按F2进入BIOS设置. ...
- Jenkins重启 在Windows GUI上
To restart Jenkins manually, you can use either of the following commands: (jenkins_url)/safeRestart ...
- zabbix 监控zookeeper
1.监控脚本如下:check_zookeeper.sh 1 2 #!/bin/bash echo mntr | nc 127.0.0.1 2182 | grep "$1" |awk ...
- [2017SEERC]Divide and Conquer
https://www.zybuluo.com/ysner/note/1308834 题面 一个有\(n\)个点的图,上面有有两棵不同的生成树.问至少切断几条边,可以使原图不联通.并输出方案数. \( ...
- bzoj 2067 [ Poi 2004 ] SZN —— 二分
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2067 问题1:贪心考虑,应该是每个点的儿子尽量两两配对,如果剩一个就和自己合并向上,所以 a ...
- 计算属性 computed
计算属性 computed 计算缓存 vs Methods <div id="example"> <p>Original message: "{{ ...
- PCB Genesis拼SET画工艺边 实现方法(一)
在PCB行业中,客户提供的PCB尺寸较小,为方便PCB加工,并生产提高生产效率,通常小于80X80mm需拼板处理的, 拼板要求可能来自按户指定拼板,也有可能是由工厂自行拼板,但对于CAM来说就需将PC ...
- 微信小程序获取自定义属性值
写小程序的时候用到了自定义属性,特地来记录一下 特别是这个坑,必须得说一说 wxml <view class='box' bindtap='getValue'> <view clas ...
- 【计蒜客习题】两仪剑法(gcd)
两仪剑法是武当派武功的高级功夫,且必须 2 个人配合使用威力才大.同时该剑法招数变化太快.太多.设武当弟子甲招数变化周期为 n,武当弟子乙招数变化周期为 m,两弟子同时使用该剑法,当 2 人恰好同时达 ...
- C基础-对malloc的使用与理解
一.malloc函数分析 1.函数原型 void * malloc(size_t size); 2.Function(功能) Allocates a block of size bytes of m ...