iOS Block语法 基础介绍1 浅谈(void(^MyBlock)()=^) oc block
来源:互联网 发布:linux下怎么解压缩 编辑:程序博客网 时间:2024/05/20 02:52
以前我们知道的数据类型如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] 我是王虎
- iOS Block语法 基础介绍1 浅谈(void(^MyBlock)()=^) oc block
- OC 基础之----- Block和语法糖
- OC语法之Block
- OC中的block语法
- OC语法--block
- 黑马程序员-IOS-OC基础-Block
- 浅谈ios block(1)
- 黑马程序员--ios block语法介绍
- 黑马程序员-iOS基础之OC重点语法(Block、Protocol)
- OC基础—block
- OC基础:Block简介
- iOS 初学笔记之Block语法基础
- ios oc之block
- IOS 浅谈Block用法
- iOS之block浅谈
- iOS-浅谈block
- iOS中block浅谈
- OC总结-block语法
- Leetcode之String to Integer (atoi)
- STL map 的总结
- 数据结构与算法学习1——算法复杂度分析
- python安装".egg"文件导入module
- mysql 记录语句记录
- iOS Block语法 基础介绍1 浅谈(void(^MyBlock)()=^) oc block
- 读文件内容,做交互式回答,然后追加文件
- 笨猴子
- servlet的生命周期
- linux下jar命令与jar包
- PowerDesigner—你知道CDM、LDM、PDM、OOM的区别吗?
- struts2下的ajax注意事项
- Java多线程:线程状态
- LeetCode Maximal Rectangle