Flo*_*ell 6 objective-c objective-c-blocks
我试图理解块的概念.到目前为止我所读到的内容似乎在概念上类似于JavaScript中的匿名函数.它是否正确?
是的,对于大部分来说。块是一种被处理的 C函数,可以从周围的作用域捕获变量。匿名函数相当于块,但由于块的幕后机制相当复杂,因此肯定不完全相同。
\n\n例如,如果您计划在定义块不再处于活动状态的函数/方法之后/之外使用块\xe2\x80\x94,则如果您将该块设置为某处的属性或在 GCD 中使用(多-核心操作队列库),需要用Block_copy()(或[aBlock copy])复制。我不会详细介绍,但这肯定不是您使用 JS(匿名)函数所做的事情。这与块文字有关,如果您希望它持久存在,则需要将其复制到堆中。
它可能会变得相当复杂(但其设计相当漂亮),但对于大多数用例来说,它相当简单,您可以将其视为匿名 JS 函数。;-)
\n| 归档时间: |
|
| 查看次数: |
984 次 |
| 最近记录: |