为什么我们在目标C中使用块而不是函数?

时间:2016-01-11 12:25:02

标签: objective-c objective-c-blocks

任何人都可以告诉我为什么我们使用块而不是函数和方法,因为三个可以执行相同的工作。那么使用块的必要性是什么..有没有任何类型的块?

1 个答案:

答案 0 :(得分:6)

块,有时也称为匿名函数,实际上只不过是带状态的函数。有时候这种状态使它们特别有用,有时候我们只是为了方便语法和简洁代码而使用它们。

当一个块捕获状态时,它被称为闭包。这意味着在块的范围之外定义但在块中使用的变量是在定义块的位置捕获的。也就是说,当在运行时执行定义块的代码时。这意味着块的每次执行都可以(并且通常会)捕获相同变量的不同值。