OC-Block
2015-07-09 08:04
344 查看
1.作用:
Block用来保存一段代码,方便程序随时调用,标志为^。
定义Block变量:
void (^名称)(形参 ) = ^{
}
eg:
利用block调用block内部代码:myblock();
(1)定义block变量
1> int (^sumblock)(int ,int ); // 有形参
2> void(^myblock)(); // 无形参
(2)利用block封装代码3种方法
1> 有形参
eg:
2>无形参
3>无形参
(3)block访问外面变量
1> block内部可以访问外面的变量
2>默认情况下,block不能修改外面的局部变量。
eg:
3> 局部变量加上__block,则block内部变量可以修改此局部变量
(4)利用typedef定义block类型
typedef int (^myblock)(int , int ) ; // myblock是block的名字 有形参
(1)可以保存代码
eg:
(2)有返回值
eg:
上述代码返回值为int类型
(3)有形参
eg:
上述代码形参为a和b
4)调用方式一样
eg:
myblock(10,11 );
2>不同点
(1)block的标识符是^,而函数没有
(2)block默认情况下不能修改局部变量,而函数在默认情况下可以修改成员变量。
(3)在block情况下,当语句结束时,需要在大括号外部添加分号,而函数不需要。
3.总结:
优点:可以方便程序随时调用某段代码或者某个功能,提高了程序编写效率,减少了程序的垃圾代码。
Block用来保存一段代码,方便程序随时调用,标志为^。
定义Block变量:
void (^名称)(形参 ) = ^{
}
eg:
int (^myblock)(int,int) = ^(int a,int b){ return a+b; };
利用block调用block内部代码:myblock();
(1)定义block变量
1> int (^sumblock)(int ,int ); // 有形参
2> void(^myblock)(); // 无形参
(2)利用block封装代码3种方法
1> 有形参
eg:
^(int a, int b){ return a - b; }; // 有形参
2>无形参
^( ){ NSLog(@"-------"); }; // 无形参
3>无形参
^{ NSLog(@"-----"); }; // 无形参
(3)block访问外面变量
1> block内部可以访问外面的变量
2>默认情况下,block不能修改外面的局部变量。
eg:
int b = 15; void (^myblock)=^{ block b;// 如果在myblock在局部变量前声明_block,则可以直接修改 b = 16; // 不能直接修改外部的局部变量、 }
3> 局部变量加上__block,则block内部变量可以修改此局部变量
(4)利用typedef定义block类型
typedef int (^myblock)(int , int ) ; // myblock是block的名字 有形参
2.block跟函数比较:
1>相同点(1)可以保存代码
eg:
void(^myblock)() { NSLog(@"----------"); // 保存此段代码块 };
(2)有返回值
eg:
int (^myblock)(int,int) = ^(int a,int b){ return a+b; };
上述代码返回值为int类型
(3)有形参
eg:
int (^myblock)(int,int) = ^(int a,int b){ return a+b; };
上述代码形参为a和b
4)调用方式一样
eg:
myblock(10,11 );
2>不同点
(1)block的标识符是^,而函数没有
(2)block默认情况下不能修改局部变量,而函数在默认情况下可以修改成员变量。
(3)在block情况下,当语句结束时,需要在大括号外部添加分号,而函数不需要。
3.总结:
优点:可以方便程序随时调用某段代码或者某个功能,提高了程序编写效率,减少了程序的垃圾代码。
相关文章推荐
- Semaphore Objects
- Linux信号基础
- .NET实现Office Excel自定义公式 广泛应用于报表与数据分析
- mysql主从复制
- OC-内存管理
- Merge Intervals
- 听课笔记(二)
- [Objective-C] selector 简介
- 听课练习(二)
- 【剑指Offer学习】【面试题49:把字符串转换成整数】
- OC-核心语法(3)(分类、SEL、类本质)
- Android 手机影音 开发过程记录(五)
- OC-核心语法2-构造方法
- information hiding & encapsulation DEMO
- 《编程导论(Java)·12.1基本位运算》
- OC-核心语法1
- 【CTSC1999】【拯救大兵瑞恩】
- OC-多态
- OC-继承
- C++用纯虚函数实现协议委托的例子