美文网首页
iOS-block的学习

iOS-block的学习

作者: 歌白梨 | 来源:发表于2015-08-15 19:07 被阅读714次

1.Block是C语言层次的语法,有点类似函数指针,具有运行时的特点

Block objects are a C-level syntactic and runtime feature that allow you to compose function expressions that can be passed as arguments, optionally stored, and used by multiple threads.

iOS SDK 4.0开始,Apple引入了block这一特性,block就是一个代码块,但是它的神奇之处在于在内联(inline)执行的时候(这和C++很像)还可以传递参数。同时block本身也可以被作为参数在方法和函数间传递,这就给予了block无限的可能。

------------------------------------------------------------

2.Block使用

定义Block:

int (^oneFrom)(int);

创建Block:

oneFrom = ^(int anInt) {

return anInt - 1;

};

使用Block

printf("%d\n", oneFrom(10));

说明:

   (1)在类中,定义一个Block变量,就像定义一个函数;

(2)Block可以定义在方法内部,也可以定义在方法外部;

(3)只有调用Block时候,才会执行其{}体内的代码;

------------------------------------------------------------

3.Block使用场景

Block很多的用处是跨越两个类来使用的,Block块是在栈中的,除了块就为空

------------------------------------------------------------

4.__block关键字的使用

当在block中腰修改外部的变量时,需要在外部的变量加_Block关键字(外部变量是在block申明时被拷贝下来的,所以外部变量改变时block内对齐的拷贝无影响)

另外一种方法是:使用实例变量

------------------------------------------------------------

5.Block作为property属性实现页面之间传值

相关文章

  • iOS-Block本质

    iOS-Block本质 参考篇:iOS-Block浅谈[https://www.jianshu.com/p/25a...

  • iOS-block的学习

    1.Block是C语言层次的语法,有点类似函数指针,具有运行时的特点 Block objects are a C-...

  • Objective-C的本质(6)——Block本质

    参考:iOS-Block本质iOS底层原理总结 - 探寻block的本质(一)iOS底层原理总结 - 探寻bloc...

  • iOS-block

    一. 查看block内部实现 1.编写block代码void (^DemoBlock)(int, int) = ^...

  • ios-Block

    概述: 能够截取自动变量的匿名函数 指向函数的指针 结构体 oc对象 使用: - 声明 - 定义(变量赋值) - ...

  • iOS-Block

    Block是一种匿名函数,也是一种Objective-C对象。 语法 返回值和参数列表都可以省略 声明 block...

  • iOS-block

    1.相关概念在这篇笔记开始之前,我们需要对以下概念有所了解。1.1 操作系统中的栈和堆注:这里所说的堆和栈与数据结...

  • iOS-Block

    block已经成为我在iOS编写中最为常用的回调方法 , 它简单便捷 , 取代了代理大部分的工作 , 今天整理一下...

  • iOS-block

    一. block的声明、调用、实现 1. block的声明 返回值(^block变量名)(参数); 例如: 2. ...

  • IOS-Block

    Block初探 blcok的分类 不同关键字修饰的变量auto和static在OC中有个默认的关键字auto,在我...

网友评论

      本文标题:iOS-block的学习

      本文链接:https://www.haomeiwen.com/subject/keuwqttx.html