1. 首先,我们快速过一下,什么是Block?

Block是一段代码,它在OC中以^开头,可以有返回值,和参数列表,但就是没有名字。

所以,你可以把它认为是匿名函数。

事实上,它和Swift中的闭包(Closure)是一样的。

或者,学过.NET的童鞋知道委托吧,它和委托也差不多概念。

都是可以在一个方法中传入它,作为参数的方法。

 

无参无返回值的Block:

[MyObject myMethodParam1: xx param2: ^{

...

}];

有参有返回值的Block:

[MyObject myMethodParam1: xx param2: ^BOOL(id param1, id param2) {

...

}];

 

好了,说了那么多,我们来看个例子:

myDict enumerateKeysAndObjectsUsingBlock:^(
        		

网友评论