Objective c 使用带有进度委托的块的ObjC

Objective c 使用带有进度委托的块的ObjC,objective-c,ios,delegates,objective-c-blocks,Objective C,Ios,Delegates,Objective C Blocks,从下一个博客 委托回调和块之间的主要区别之一是“过程与结果” 我的问题是: 我想使用阻塞来启动一个完成的进程,但是在这个进程中,我想用进程步骤通知调用方。使用代理回调或带有代理回调的块只用于我的进度通知是否更好?没有更好或更糟的方法。这两种选择都可以 通常,块更优雅,所需的样板代码更少。另一方面,在我看来,在阅读其他人的代码时,授权通常更容易理解 我不认为将授权和区块结合起来有什么意义——我个人不这么做。以下是一些关于授权和区块的观察结果 如果一个对象有多个不同的事件,请使用委派 如果对象是单例

从下一个博客
委托回调和块之间的主要区别之一是“过程与结果”

我的问题是:

我想使用阻塞来启动一个完成的进程,但是在这个进程中,我想用进程步骤通知调用方。使用代理回调或带有代理回调的块只用于我的进度通知是否更好?

没有更好或更糟的方法。这两种选择都可以

通常,块更优雅,所需的样板代码更少。另一方面,在我看来,在阅读其他人的代码时,授权通常更容易理解


我不认为将授权和区块结合起来有什么意义——我个人不这么做。

以下是一些关于授权和区块的观察结果

  • 如果一个对象有多个不同的事件,请使用委派
  • 如果对象是单例对象,则不能使用委托
  • 如果对象正在回调以获取更多信息,我们可能会使用委托
  • 委托回调更面向过程,而块更面向结果
  • 如果您需要在多步骤流程的过程中得到通知,您可能希望使用委派
  • 如果您只是想要您正在请求的信息(或关于获取信息失败的详细信息),那么应该使用块

  • 委托是一种简单而强大的模式,其中一个对象代表另一个对象

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