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

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

作者: 无聊肥猫 | 来源:发表于2017-03-21 16:10 被阅读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的功能,就根据每个登录前的操作不同而不同了。

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/rlsgnttx.html