iOS笔记---Block

来源:互联网 发布:mac菜单栏 编辑:程序博客网 时间:2024/04/30 13:45

   Block经常用作函数块,与函数类似,但是本质上是一种数据类型,需要定义然后调用,所以要用看常量的角度看待block。 

   Block可以使用并改变全局变量,这个性质很好用,可以在类里定义一些成员然后经过Block记录上下文。但不能使用局部变量,至于为什么不能,我想是因为block的内存分配和函数类似,都有各自的栈,跨栈访问时不可行的,当然声明为__block 类型的变量应该都明白---专门给block使用处理的。

    Block 可以递归,这又是和函数类似的性质。

     对了Block的声明方法举例: 

     void (^ myblock)(int) =  ^(int){ .... };


    一般用typedef 提高可读性:  typedef   void(^myblock)(int)    blockDemo;

     这样blockDemo 就是一种数据类型了, 随便怎么用吧。

0 0
原创粉丝点击