美文网首页
理解“块(block)”这一概念--Effective笔记

理解“块(block)”这一概念--Effective笔记

作者: 夜者无念 | 来源:发表于2017-06-07 15:23 被阅读3次

    1,块是C,C++,Objective-C中的词法闭包。
    块可以看作c里的函数指针,它将方法当作对象那样进行传递。其实块是一种代替函数指针的语法结构,原来使用函数指针时,需要用“不透明的void指针”来传递状态。而改用块之后,则可以把原来用标准c语言特性所编写的代码封装成简明且易用的接口。

    2,块可接收参数,也可返回值。

    3,块可以分配在栈或堆上,也可以是全局的。分配在栈上的块可拷贝到堆里,这一的话,就和标准的Objective-C对象一样,具备引用计数了。

    定义块的时候,其所占用的内存区域是分配在栈中的。

    当使用copy下,就可以把块从栈复制到堆了。

    全局的块相当于单例,不会被系统回收。
    如:void(block)()={
    NSLog(@"block");
    };

    相关文章

      网友评论

          本文标题:理解“块(block)”这一概念--Effective笔记

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