OC基础:Block简介
来源:互联网 发布:网络代刷平台 编辑:程序博客网 时间:2024/05/17 08:56
Block(代码块):简介
代码块是C语言的一个扩展,在Objective-C完全适用,苹果公司在iOS4以后开始引入block,现在block在iOS开发中适用越来越普遍,其功能强大。简单来讲,block就是封装了一组代码语句的对象,他能在任何时间执行。
1、Block简介
Block块是封装工作单元的对象,是可以在任何时间执行的代码段。其本质上是可移植的匿名函数,可以作为方法和函数的参数传入,可以从方法和函数中返回。—(翻译自官方文档)
块是对C语言的一种扩展,它并未作为标准的ANSI C所定义的部分,而是有苹果公司添加到语言中的。块看起来更像是函数,可以给块传递参数,块也可以具有返回值。
2、Block的定义与调用
块是以插入字符^开头,后面的一个括号()内表示块所需要的参数,最后面的大括号{}中是块主体,最后以分号;结束。如下面代码所示:
- ^(int inputNum) {
- NSLog(@"printBlock Called!");
- return inputNum;
- };
同时,也可以将这个块赋值给一个变量printBlock,声明方式如下。其中,变量printBlock就是指向代码块的指针。
- int (^printBlock)(int) = ^(int inputNum) {
- NSLog(@"printBlock Called!");
- return inputNum;
- };
当需要调用已经定义的block时,可以使用如下方式,和函数调用十分类似。
- int i = printBlock(100);
3、把Block声明为类的属性
由于Block就是一个存储了一段代码的对象,因此,也可以把Block设置为某个类的属性。同时,可以用self.blockProperty来给该属性赋值。
- @interface ViewController ()
- @property(copy) void (^blockProperty) (void);
- @property(copy,nonatomic) void (^blockPropertyWithInput) (int);
- @end
- - (void)viewDidLoad {
- [super viewDidLoad];
- //blockProperty
- self.blockProperty = ^{
- NSLog(@"blockProperty is called!");
- };
- self.blockProperty();
- //blockPropertyWithInput
- self.blockPropertyWithInput = ^(int i){
- NSLog(@"blockPropertyWithInput is Called! I Value is %d", i);
- };
- self.blockPropertyWithInput(150);
- }
转载自:宏创学院 » Block(块)介绍之一:Block简介
0 0
- OC基础:Block简介
- OC Block 简介
- OC基础—block
- OC基础:block.字面量
- OC基础之Block详解
- OC基础-01-OC简介
- OC之基础简介
- OC基础——ARC和Block
- 黑马程序员-IOS-OC基础-Block
- 黑马程序员------OC基础-----block和protocol
- 黑马程序员 OC基础: Block 和 Protocol
- OC 基础之----- Block和语法糖
- 黑马程序员-OC语言基础:block
- OC简介与基础语法
- 【OC】Block
- OC block
- OC--block
- OC - Block
- 【Python学习日记】字符编码
- mvvm
- 《LDA漫游指南》数学基础阅读笔记
- 表情识别数据集整理
- hibernate延迟加载分析
- OC基础:Block简介
- jQuery选择器
- JAVA面试中问及HIBERNATE与 MYBATIS的对比,在这里做一下总结
- 【洛谷1025 数的划分】【搜索】
- android binder
- CF_604B(二分+贪心)
- 《疯狂JAVA讲义》——聊天系统(1)
- 《SQL必知必会》16-18章笔记
- PHP array_multisort()函数多维数组排序