Ios 目标C:在填充阵列时使用块通知

Ios 目标C:在填充阵列时使用块通知,ios,objective-c,c,objective-c-blocks,Ios,Objective C,C,Objective C Blocks,我不熟悉使用块,它们看起来确实是委托方法的一个很好的替代方法。在看了一些教程之后,我实现了一个简单的块来做一些简单的数学运算,但是由于它们古怪的语法,我真的很难让它们做更多的事情 有人能帮我解释一下如何在objective-c中实现一个类似于下面伪代码的块吗 从方法中调用块 该块查看类数组并通知调用方是否已填充(计数>0) 如果数组的计数为0,块将在添加了内容时通知调用方,然后块将停止 谢谢 你把太多的能力和灵活性归咎于积木。它们只是函数。它们被调用,运行,返回一个值 块与执行相同工作的普通函数

我不熟悉使用块,它们看起来确实是委托方法的一个很好的替代方法。在看了一些教程之后,我实现了一个简单的块来做一些简单的数学运算,但是由于它们古怪的语法,我真的很难让它们做更多的事情

有人能帮我解释一下如何在objective-c中实现一个类似于下面伪代码的块吗

  • 从方法中调用块
  • 该块查看类数组并通知调用方是否已填充(计数>0)
  • 如果数组的计数为0,块将在添加了内容时通知调用方,然后块将停止

  • 谢谢

    你把太多的能力和灵活性归咎于积木。它们只是函数。它们被调用,运行,返回一个值

    块与执行相同工作的普通函数之间的唯一区别在于,可以将块视为对象,以便放入数组等集合中。它们更容易用于委托之类的事情,因为它们可以在文件级别以外的范围中定义,并且它们将从该范围捕获变量。块语法非常混乱,因为它基于函数指针,这是C语法中最粗糙的部分


    块没有固有的“块通知调用方”功能。您只能传回一个返回值。

    您将太多的功能和灵活性赋予了块。它们只是函数。它们被调用,运行,返回一个值

    块与执行相同工作的普通函数之间的唯一区别在于,可以将块视为对象,以便放入数组等集合中。它们更容易用于委托之类的事情,因为它们可以在文件级别以外的范围中定义,并且它们将从该范围捕获变量。块语法非常混乱,因为它基于函数指针,这是C语法中最粗糙的部分


    块没有固有的“块通知调用方”功能。您只能传回一个返回值。

    我更倾向于使用块以外的东西。我更倾向于使用块以外的东西+但是,块也会自动捕获局部范围,这是它们相对于常规函数的一个优势。+1对于Josh的注释,只有一个限定符。块的一个有趣特性是,它们从其封闭范围继承变量,即使它们可以在程序执行离开该范围后继续存在。+1但是,块也会自动捕获局部范围,这是它们相对于常规函数的一个优势。+1到Josh的注释,带有一个限定符。块的一个有趣的特性是,它们从其封闭范围继承变量,即使它们可以在程序执行离开该范围后保持不变。