1.当程序中,有一系列的接口要对外开放时,最好使用@protocol的方式,因为非常清晰,类似于UITableViewDelegate,UITableViewDataSource
2.当需要动态的去替换某个功能模块的时候,最好使用block
- 例如之前自己封装的一个获取地理位置的工具类。
- 使用block还有一个优点就是回调代码块定义在委托对象函数内部,是代码更为紧凑。
- 而且我们不需要定义协议,然后遵守协议这些步骤。
下方理解:
实战经验:我们在委托类中的方法先执行,此时不会回调block,只有我们实现block,此时才会回调,也就是说当实现 举例:success(a,b,c,nil) 上面的这个block的时候才会回调回去,例如我们在委托类中先声明一个block,当执行带有block的这个方法的时候,我们把传进来的block用self.block记录,只有我们实现了self.block这个block的时候才会进行回调,记住这里用记录这个词,当我们多次调用这个self.block就会出现多次的回调,返回多次内容。
总的来说什么时候block或者self.block实现,那么就会回调。实现就是block(a,b,c)。里面传进去东西。
学习心得:
试着block 多次 看返回几次。。。
block执行多少次 就给返回多少次 最主要看的是block的执行 而不是拥有block的这个方法的执行。