前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

Block

作者头像
用户1451823
发布2018-09-13 17:22:18
4220
发布2018-09-13 17:22:18
举报
文章被收录于专栏:DannyHoo的专栏DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1338197

Block

查看变量的数据类型的方法:

如:int* p;

整型指针的变化总结:

整型-》指向整型的指针

1.拷贝整型的声明                  int a;

2.将变量名称换个名字          int  q;

3.给变量加一个括号              int  (q);

4.在变量的前面加一个*号  int  (*q);

回顾:C中的函数作为一个参数:intsub(intfunc1(void),MySum_tfunc2);sub函数的两个参数都是函数。 第二个参数有些特殊,它是一个函数类型被改名后的函数。它原来可能是这样的:intfunc(int,int); 被用typedef修改后变成了这样:typedefintMySum_t(int,int) 这里有一个规则:

函数指针:

// 函数指针

int(*sub1)(intfunc1(void),MySum_tfunc2);

sub1 = ⊂

NSLog(@"%d",(* sub1)(func6,func5));与原函数的效果是一样的。就如同整型指针的用法:

inta =1;

int* p = &a;

NSLog(@"a=%d",a);

NSLog(@"*p=%d",*p);还有稍微简单的例子,方便与理解:

int(*add)(int,int);

add = ∑

NSLog(@"add=%d",add(6,4));

NSLog(@"sum=%d",sum(6,4)); 输出的结果是一样的。

函数指针的赋值有两种方式:首先func是一个函数指针,1.func = &func1;   2.func = func.     函数指针的调用有两种方式:1.func();   2.*func();

函数指针和block的相似之处:^和*

如何看一个变量的类型总结:要查看谁的数据类型,将其除去,剩下的部分就是它的数据类型。如: int  *  p. p的数据类型就是int *

block的格式:返回值类型 (^block名) (参数);void(^block)(void);如果block比较复杂,还可以利用typedef对其(类型)进行改名:typedefvoid(^MyBlock_t)(void); 这样MyBlock就成了这样void(^block)(void);的一个block了,可以利用MyBlock定义新的block。

typedef用法的回顾:如:将int类型重命名。  typedef int myInt;    myInt a;  这样定义的变量a就是整型的。注意:查看等价关系:别名 和 除去别名、typedef剩下的东西等价。 如上面的myInt和int是等价的。

block的声明:返回值类型 (^块名) (参数的类型)

block的赋值:^返回值类型 (参数) {具体实现的内容};赋值语句写完要写封号。

block声明和赋值可以写在一起,例子:(当返回值类型和参数为空时可以省略)

void(^ block2)(void)= ^void{

NSLog(@"将声明和赋值写在一起");

};

调用块:block2();

block的访问权限:

对于普通变量,在block中只能对其进行访问,而不能更改,要想对其更改,需要在外部变量名前加__block.注意:是两个下划线。

block可以作为函数的参数:

block:

block是用来保存代码的。  block的标志:^。不是普通的代码块。

(一下都是官方的标准定义)

1.block封装了一段代码,可以在任何时候执行。(很像一个函数——可以保存代码,有参数,有返回值)

2.block可以作为函数参数或者函数的返回值,而其本身又可以带参数和返回值。苹果官方建议多使用block。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年07月22日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档