您的位置:首页 > 移动开发 > IOS开发

iOS Block语法 基础介绍1 浅谈(void(^MyBlock)()=^) oc block

2015-09-17 22:42 441 查看
以前我们知道的数据类型如Double,枚举,结构体,指针,OC数据类型,id,但是还有种数据类型,叫做Block.接下来我想介绍一下Block

这种数据类型,Block是苹果官方推荐让我们使用的,为什么了,因为Block的运行效率特别高,特别好用,在iOS的开发中你会发现,到出都是Block,为什么这么多,最主要的一个原因就是他好用,运行效率高.

Block的本质:其实他的本质还是c语言的函数,指向函数什么的,具体咱们先不谈,我先介绍一下Block是干什么用的,

Block的作用:其实很简单,Block他是用来封装代码的,是用来保存代码的,只要使用Block保存的一段代码,他在程序运行的

任何时候都可以调用,任何时候执行,这很像一个函数,我们函数不也是这样吗,你是把一段代码封装到一个函数里面去,要在某一个时间,调用这个函数,不就执行这段代码了,但是函数有一个缺点,函数在编译之前就已近确定了,但是Block他不一样,Block是程序运行时候保存一段代码,而函数不可以,函数的代码是固定死的,所以Block不一样.

接下来我们写一个小小的例子1

void test()
{
NSLog(@"我是王虎");

}

例子2 有时候我们是不是希望在函数运行过程中就把这段代码保存起来,而且想把这段代码传来传去,这时候怎么办了.不好办,这时候我们就用Block,在前面我们已经说过,Block用来保存一段代码,有时候我们也称代码段,代码块.所以你想一想,你要保存一段代码,肯定要有一个{},而且你应该知道你要保存什么代码,你是不是应该在{}里面写上,假如我要输出我的名字,写在{}里面,我现在想把保存我名字的代码保存起来方便我以后随时调用,现在他只是一个普通的代码快,怎么让他知道我的代码块是Block,其实很简单,加一个Block的标志,指针的标志是*,Block的标志是数字6上面的^,
^其实是位运算符,或,但是在这里他不是或,他是Block,在{}最前面加一个^,如^{},加上^以后系统会知道这是Block.Block其实和函数很像,那像在什么地方了 1可
以保存代码 2有返回值 3有形参 我前面已经说过,Block是一种数据类型,现在我们来定义一个Block的变量,现在我们写一个他返回值void,注意Block有一个(),写一个MyBlock,这个是Blok的变量名,接下来在写一个(),()什么意思
代表我们没有形参 完成以后如以下代码,这么写意味着他没有返回值,没有参数

//1 定义Block变量

void(^MyBlock)()=^{

NSLog(@"我是王虎");

};

//2调用Block内部代码

MyBlock();

//我想在执行一次

MyBlock();

//我们可以看到打印结果 调用了两次

2015-09-17 22:02:14.251 iOS Block 基本使用[56168:6111112] 我是王虎

2015-09-17 22:02:14.251 iOS Block 基本使用[56168:6111112] 我是王虎
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: