阻止vs委托或块与方法

时间:2017-02-22 14:51:38

标签: methods delegates objective-c-blocks

我刚刚研究了它很好,易于使用的块,有助于内联编码并将事物保存在一个地方。但我无法清楚地理解以下两点。

1)块如何与方法和委托不同?

2)使用块优于方法和委托的优点。块比委托和方法更有用。

请更好地解释并帮助我理解这些概念。提前谢谢!

1 个答案:

答案 0 :(得分:0)

你问的一个看似奇怪的问题:

  

1)块如何与方法和委托不同?

     

2)使用块优于方法和委托的优点。块比委托和方法更有用。

之后写了:

  

易于使用,有助于内联编码并将事物保存在一个地方

无论如何,虽然我可能误解了你所追求的是什么,但是如果有帮助的话,还有一些你自己要考虑的事项:

  • 实例方法和委托都与对象的实例相关联;所以有self个实例变量,属性和其他方法都可以被引用和使用。两者都伴随着状态。
  • 块与函数一样,不与对象的实例关联。
  • 然而,块与函数的不同之处在于它可以从它们定义的方法/函数中捕获值和变量(用__block注释的那些)。所以他们带着一些状态。
  • 至于其他人的优势,实际上是为场景选择合适的一个问题 - 没有一个是更好的"和其他人。决定你需要什么;向对象(方法)添加行为,传递实例/方法对以提供某些功能(委托),根据本地范围(块)中的值提供功能等;并使用适当的构造。

HTH