ObjC使用具有进度委托的块

时间:2012-11-11 15:03:13

标签: objective-c ios delegates objective-c-blocks

来自下一篇博文http://thejoeconwayblog.wordpress.com/2012/05/29/blocks-or-delegation/ 委托回调和块之间的主要区别之一是“过程与结果”

我的问题是:
我想使用阻塞来启动完成进程,但在此过程中我想通过进程步骤通知调用者。是否最好仅将委托回调块与委托回调一起用于我的进度通知

3 个答案:

答案 0 :(得分:0)

没有更好或更糟。两种选择都可以完成这项工作。

通常块更优雅,需要更少的样板代码。另一方面,从我的角度来看,在阅读别人的代码时,委托通常更容易理解。

我没有看到将两者,委托和块相结合的重点 - 我个人不会这样做。

答案 1 :(得分:0)

以下是对代表和块的一些观察

  1. 如果某个对象有多个不同的事件,请使用委托。
  2. 如果对象是单身,我们就不能使用委托。
  3. 如果对象正在回电以获取更多信息,我们可能会使用委托。
  4. 委托回调更加面向流程,块更加面向结果。
  5. 如果您需要在多步骤过程中获得通知,您可能希望使用委派。
  6. 如果您只是想要提供您要求的信息(或有关未能获取信息的详细信息),您应该使用一个块。

答案 2 :(得分:0)

Delegate是一个简单而强大的模式,其中一个对象代表另一个对象。

块是自包含的代码段,可以访问调用方法的本地和参数。块增强了代码的可读性和可维护性。