码迷,mamicode.com
首页 > 其他好文 > 详细

OC--block

时间:2014-12-05 10:37:43      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:log   代码   ef   type   br   如何   return   函数   11   

block用来保存一段代码
block的标志:^
block跟函数很像:
1.可以保存代码
2.有返回值
3.有形参
4.调用方式一样

//定义block变量

void (^myblock)() = ^{
NSLog(@"----------------");
NSLog(@"----------------");
};

//利用block变量调用block内部的代码;
myblock();

int (^sumblock)(int,int) = ^(int a, int b){
return a + b;
};

int c = sumblock(10,11);

/*
指针函数指针
int (*p)(int,int) = sum;
int d = p(10,12);
NSLog(@"%d",d);
*/

/*
block要掌握的东西
1> 如何定义block变量
int (^sumBlock)(int, int);
void (^myBlock)();

2> 如何利用block封装代码
^(int a, int b) {
return a - b;
};

^() {
NSLog(@"----------");
};

^ {
NSLog(@"----------");
};

3> block访问外面变量
* block内部可以访问外面的变量
* 默认情况下,block内部不能修改外面的局部变量
* 给局部变量加上__block关键字,这个局部变量就可以在block内部修改

4> 利用typedef定义block类型
typedef int (^MyBlock)(int, int);
// 以后就可以利用MyBlock这种类型来定义block变量
MyBlock block;
MyBlock b1, b2;

b1 = ^(int a, int b) {
return a - b;
};

MyBlock b3 = ^(int a, int b) {
return a - b;
};
*/

OC--block

标签:log   代码   ef   type   br   如何   return   函数   11   

原文地址:http://www.cnblogs.com/ZhangYuGe/p/4145885.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!