ios学习(block)
2015-07-28 20:33
232 查看
block:( 理解基础1)
1.
首先类似于c语言中的函数,可以有返回值类型,有参数,能接收,并且我们将其封装起来也可以使用。
例如:
这是一个block,以^ 开始的代码块
int (^blockOne)(int,int)= ^(int a,int
b){
return a+b;
};
int:是返回值类型
(^blockOne):是一个block的名字
(int,int):只可以接收int型的数据
这是一个c语言函数
int
a(int a ,int b){
int c;
c = a+b;
return c;
}
在调用时也比较相似,block调用:int add = blockOne(2,3);
c语言函数的调用a(2,3);结果是一样的。
以上是一个有返回值类型的
定义个无返回值类型的
void (^blockTwo)(void) = ^(void){
NSLog(@"hello");
};
调用:
blockTwo();
同样类似于如下c语言中的一个无返回值类型的函数
void b(){
NSLog(@"hello");
}
调用:
b();
2.
因为是void类型的因此void是可以省略的,如果想要修改block里面的变量,必须要加__block
__block int c =
10;
void(^blockThree)(void)=^{
c= c+2;
NSLog(@"%d",c);
};
blockThree();
1.
首先类似于c语言中的函数,可以有返回值类型,有参数,能接收,并且我们将其封装起来也可以使用。
例如:
这是一个block,以^ 开始的代码块
int (^blockOne)(int,int)= ^(int a,int
b){
return a+b;
};
int:是返回值类型
(^blockOne):是一个block的名字
(int,int):只可以接收int型的数据
这是一个c语言函数
int
a(int a ,int b){
int c;
c = a+b;
return c;
}
在调用时也比较相似,block调用:int add = blockOne(2,3);
c语言函数的调用a(2,3);结果是一样的。
以上是一个有返回值类型的
定义个无返回值类型的
void (^blockTwo)(void) = ^(void){
NSLog(@"hello");
};
调用:
blockTwo();
同样类似于如下c语言中的一个无返回值类型的函数
void b(){
NSLog(@"hello");
}
调用:
b();
2.
因为是void类型的因此void是可以省略的,如果想要修改block里面的变量,必须要加__block
__block int c =
10;
void(^blockThree)(void)=^{
c= c+2;
NSLog(@"%d",c);
};
blockThree();
相关文章推荐
- IOS被遗忘的知识
- iOS 苹果官方Demo合集
- 55.iOS6,7坐标起点不一样的原因 图片拉伸 initialize
- iOS设计模式 - 外观
- iOS 对于文件的解析 JSON DOM SAX
- iOS开发实现页面间的数据传递
- iOS 调取iPhone本地相册和开启相机
- iOS OC10_Block
- iOS7光标问题
- iOS 手势应用
- iOS中单例的线程安全
- github优秀开源项目大全-iOS
- 苹果开发 笔记(53)使用Fiddler 调试
- iOS多线程之线程安全
- IOS- 内存中堆和栈的区别
- ios学习笔记-(oc基础-面向对象小系统)
- IOS-动画Animation
- 终于理解POST请求和批量获取数据
- IOS的ARC导致内存泄露的几种情况和具体解决方案
- iOS 之选择器(Selector)