objective-c(五)关于代码块的使用

  关于objective-c语言中,有一种技术叫做代码块技术。代码块技术实际上是将函数类型声明称变量类型。以变量的类型存在。在其中可以进行计算等操作。

  声明方法:

  int (^demo)(NSString *x)=^{return 0;};

  以上声明就是一个代码块类型的数据的声明,代码块可以被当作是参数进行传递。类型是最开始声明的类型,在代码块的部分也一定要返回相应的数据类型。demo就是这个代码块的名字。调用的时候,这个就相当于变量,使用它来进行调用。调用的使用。参数的位置不仅可以使用一个普通的相同类型的变量来接收,也可以使用以下的方法进行接收。

  -(NSMutableArray *) filterArray:withBlock:(BOOL(^)(id))block{

  }

  上面就是在创建方法时。明确指定传入的是一个代码块变量。

  运行的方式是,在程序调用方法时,如果传入了代码块变量,程序会先调用代码块,执行完毕之后,将哪个返回数据返回到参数上。然后在执行后面的方法。

  当作为参数是。使用的如下

  demo(参数)

  以上格式即可。并且在oc中的多线程可以支撑到代码块。但是不建议使用。相对于java的多线程oc的多线程使用麻烦。而且代码块有点相似于递归,非常容易形成死循环。

posted @ 2017-03-29 16:32  执行人间的意志  阅读(133)  评论(0编辑  收藏  举报