我对Block的理解,以及用Block实现登录后继续执行登录前的

2017-03-21  本文已影响14人  无聊肥猫

我对Block的理解

假设有一个盒子,这个盒子可以让放进去的钱加倍,无论何时何地,无论你把多少钱放进去,直接加倍。

Block就像一个这样的盒子,我们要先设计这个盒子:

typedef int (^DoubleBlock)(int money);

DoubleBlock就是这个盒子(block)的名字,前面的int是block的返回值,相当于最后从盒子里出来的钱的数量。后面的int money则是block的传入参数,相当于将要放进盒子里的钱的数量。

盒子设计好了,我们相当于做了一个模具,接下来我们要开始做一个实际存在的盒子:

@property (nonatomic, copy) DoubleBlock block;

这里我们声明了一个Block的对象,一个空的盒子,还没有任何的作用,它还不能让钱翻倍,因此我们需要对它进行赋值:

[self setBlock:^(int money){

      return money * 2;

}];

Block的功能已经赋值,接下来就是调用了。随时随地,都可以直接调用。

int result = self.block(999);

到此一个简单的Block的应用就结束了。

用Block实现登录后继续执行登录前的操作

APP中某个功能需要用户登录成功后才能使用,因此当用户未登录或者登录状态无效的时候点击该功能,需要提示用户去登录,登录成功后,系统自动执行用户之前的点击操作,对于用户体验来说是非常重要的一点。

用Block来实现此功能,可以让代码条理清晰,易读,方便维护。只需要在用户登录的ViewController里声明一个Block,在登录成功后执行这个Block即可。

至于Block的功能,就根据每个登录前的操作不同而不同了。

上一篇下一篇

猜你喜欢

热点阅读