/*
1.定义block变量:
返回值类型 (^block变量名) (参数类型1, 参数类型2, ....); 2.给block变量赋值
block变量名 = ^(参数类型1 参数名称1, .....)
{ };
*/ /*
1.设置动画属性 2.开始执行动画 3.动画执行完毕 block1 = ^{
封装了动画开始执行前想做的事情
}; block2 = ^{
封装了动画执行完毕后想做的事情
};
*/ #import <Foundation/Foundation.h> //typedef int MyInt; // MyBlock其实就是新的数据类型名称
typedef int (^MyBlock)(int, int); /*
需要掌握:
1.定义block变量
2.给block变量赋值
3.type和block的应用
*/ int main(int argc, const char * argv[])
{
MyBlock minus = ^(int a, int b)
{
return a - b;
};
int d = minus(,);NSLog(@"d id %d", d); MyBlock sum = ^(int v1, int v2)
{
return v1 + v2;
}; int e = sum(, );
NSLog(@"e is %d", e); /*
int (^minusBlock) (int, int) = ^(int a, int b){
return a - b;
};
minusBlock(10, 5); int (^averageBlock) (int, int) = ^(int a, int b)
{
return (a+ b)/2;
};*/ return ;
} void test2()
{
int a = ; __block int b = ; // block内部不能修改默认的局部变量
// 定义一个block变量
void (^block) () = ^{
//a = 11;
b = ;
NSLog(@"b=%d", b);
}; block();
block();
block();
} void test()
{
// 左边的void:block没有返回值
// 最右边的() :没有参数
// 中间的(^) block的标志,不能少
void (^myblock)() = ^{
int a = ;
int b = ;
NSLog(@"a=%d, b=%d", a, b);
};
myblock(); // 定义一个block变量,变量名是sumBlock
// 最左边的int:block的返回值是int类型
// 最右边的(int, int) block接受两个int类型的参数
int (^sumBlock)(int, int);
sumBlock = ^(int v1, int v2){
return v1 + v2;
}; int sum = sumBlock(, );
NSLog(@"sum=%d", sum);
}

IOS学习之路--BLOCK的更多相关文章

  1. IOS开发---菜鸟学习之路--(二十二)-近期感想以及我的IOS学习之路

    在不知不觉当中已经写了21篇内容 其实一开始是没有想些什么东西的 只是买了Air后 感觉用着挺舒服的,每天可以躺在床上,就一台笔记本,不用网线,不用电源,不用鼠标,不用键盘,干干脆脆的就一台笔记本. ...

  2. 浅谈iOS学习之路(转)

    转眼学习iOS已经快两年的时间了,这个路上有挫折也有喜悦,一步步走过来发现这个过程是我这一辈子的财富,我以前的老大总是对我说,年轻就是最大的资本(本人91年),现在才算是慢慢的体会到,反观自己走过的这 ...

  3. 浅谈iOS学习之路

    转眼学习iOS已经快两年的时间了,这个路上有挫折也有喜悦,一步步走过来发现这个过程是我这一辈子的财富,我以前的老大总是对我说,年轻就是最大的资本(本人91年),现在才算是慢慢的体会到,反观自己走过的这 ...

  4. 纪录我的iOS学习之路

    学习资料的网址 田伟宇(Casa Taloyum)有几篇介绍iOS架构的文章,一级棒!原博客链接. iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方 ...

  5. IOS学习之路--OC的基础知识

    1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...

  6. iOS学习笔记之Block

    写在前面 学习iOS开发的过程中,在很多场合都遇到了Block.说实话,虽然自己依葫芦画瓢的将Block"拿来"用着,但这种"拿来主义"与学习时应持有的探索精神 ...

  7. ios学习笔记之block在ios开发中的应用

    一.什么是Blocks      Block是一个C级别的语法以及运行时的一个特性,和标准C中的函数(函数指针)类似,但是其运行需要编译器和运行时支持,从ios4.0开始就很好的支持Block. 二. ...

  8. 我的iOS学习之路(四):动画设置

    在ios的开发过程中,经常需要对视图控件进行变化,如大小,颜色,旋转等,这是如果直接将变化结果呈现出来,就显得不够友好,所以我们通常会使用动画,让用户能够看到变化的过程. 使用动画通常有两种方式,一种 ...

  9. 我的IOS学习之路(三):手势识别器

    在iOS的学习中,对于手势的处理是极为重要的,如对于图片,我们经常需要进行旋转,缩放以及移动等.这里做一下总结,详见代码. - (void)viewDidLoad { [super viewDidLo ...

随机推荐

  1. elipse 调试 反射 invoke 子类

    真实案例: 调试一个接口,子类invoke的,结果断点断不到: 查找两个项目间的关联.依赖,无果. 问人吧,结果是配置文件没改成本机: #============================# # ...

  2. 用Opera Mobile调试手机版网页【转】

    注意:新版本的opera已经采用webkit内核,没有dragonfly了. 要下载12版的http://get.geo.opera.com/pub/opera/win/1216/int/Opera_ ...

  3. [转] matlab saveas 和imwrite的区别

    http://hi.baidu.com/curbzz/item/04a69e805fc334e3e596e035 saveas(handle,['目录','文件名']) 如果只有一幅图,handle设 ...

  4. 加了GO后报 'GO' 附近有语法错误

    单独运行SQL无问题,了加GO就报错. 是你的SQL语句中,有些行的结尾处只有Char(13)没有Char(10),即:只有回车符没有换行符,这种状态在视觉上是没办法区分的. 参考:http://ww ...

  5. 【解决方案】: hyper-v 导入虚拟机报这个错误 32784

    从win server 2012创建的虚拟机 导出后, 想导入到本机win8系统上,结果报错 32784, google了一堆,都说不支持... 实际上 1.在win8系统上 新建一个不带硬盘的虚拟机 ...

  6. 【JDBC】向数据表插入数据时,自动获取生成的主键

    数据表设计时,一般都会有一个主键(Key)(自己指定),有时也可以使用联合主键: 有许多数据库提供了隐藏列为表中的每行记录分配一个唯一键值(如:rowid): 当我们没有指定哪一列作为主键key时,数 ...

  7. Func系列3:自定义模块

    简介 Func自带的模块已经非常丰富,但在日常系统运维当中,尤其是面对大规模的服务器集群.不同类别的业务平台,次是Func自带的模块或许已经不能满足我们的需求,所以有必要通过自定义模块来填补这块的不足 ...

  8. 免安装Oracle客户端使用PLSQL Developer 7/8 连接Oracle10/11g

    众所周知,Oralce的客户端几百兆太大,网上也有许多DIR的处理.这里的处理使用官方提供ORALCE工具包Instant Client Package! 下载地址:http://www.oracle ...

  9. linux svn迁移备份的三种方法

    原文:http://www.iitshare.com/linux-svn-migration.html svn备份方式对比分析 一般采用三种方式: 1.svnadmin dump 2.svnadmin ...

  10. C#将字符串转换为整型的三种方法的总结

    在C#中,要将一个字符串或浮点数转换为整数,基本上有三种方法: (1)使用强制类型转换:(int)浮点数 (2)使用Convert.ToInt32(string) (3)使用int.Parse(str ...