美文网首页
OC语言day06-14Block应用场景

OC语言day06-14Block应用场景

作者: liyuhong165 | 来源:发表于2016-06-20 00:25 被阅读46次

    pragma mark Block应用场景

    pragma mark 概念

    /**
     当做一件事情
     前后做的操作 都是一样(重复的)
     仅仅只有中间不一样(不确定的)
     
     可以使用Block
     
     */
    

    pragma mark 代码

    #import <Foundation/Foundation.h>
    #pragma mark 类
    
    #pragma mark 函数
    // 每天之前要做的事情
    void goTowrorkPrefix()
    {
        NSLog(@"起床");
        NSLog(@"穿衣服");
        NSLog(@"洗漱");
        NSLog(@"吃早餐");
        NSLog(@"跑步上班");
    }
    // 每天之后要做的事情
    void goTowrorkSubfix()
    {
        NSLog(@"收拾东西");
        NSLog(@"跑步回家");
        NSLog(@"洗澡");
        NSLog(@"睡觉");
    }
    
    void goToWorkInday1()
    {
        goTowrorkPrefix();
        
        NSLog(@"认识新同事");
        
        goTowrorkSubfix();
    }
    
    void goToWorkInday2()
    {
        goTowrorkPrefix();
    
        NSLog(@"熟悉公司代码");
        
        goTowrorkSubfix();
    
    }
    void goToWorkInday3()
    {
        goTowrorkPrefix();
    
        NSLog(@"开始编写代码");
        
        goTowrorkSubfix();
    
    }
    
    void goToWorkInday4()
    {
        goTowrorkPrefix();
    
        NSLog(@"应用程序上架");
        
        goTowrorkSubfix();
    
    }
    
    // 当发现代码的前面 和 后面都是一样的时候 \
        这个时候 就可以使用Block
    
    void go2Work(void (^workBlock)())
    {
        NSLog(@"起床");
        NSLog(@"穿衣服");
        NSLog(@"洗漱");
        NSLog(@"吃早餐");
        NSLog(@"跑步上班");
        
        // 不一样
        // 可以通过参数传递进来
        // 接收代码块
    #warning 为什么要使用接收block 因为中间这一段是不明确 可能是一行代码 或者 多行代码 所以接受函数或者Block。因为我们后面都是使用OC的代码来编写,所以这里接受一个代码块会比较好
        workBlock();
        
        NSLog(@"收拾东西");
        NSLog(@"跑步回家");
        NSLog(@"洗澡");
        NSLog(@"睡觉");
    }
    
    #pragma mark 通过函数 使用 Bolck
    void go2WorkInDay1()
    {
        go2Work(^{
            NSLog(@"不一样的操作:认识新同事");
        });
    }
    
    void go2WorkInDay2()
    {
        go2Work(^{
            NSLog(@"不一样的操作:熟悉公司代码");
        });
    }
    void go2WorkInDay3()
    {
        go2Work(^{
            NSLog(@"不一样的操作:开始编写代码");
        });
    }
    void go2WorkInDay4()
    {
        go2Work(^{
            NSLog(@"不一样的操作:应用程序上架");
        });
    }
    
    /**
     block 查找文件的步骤
     
     找到需要读取的文件
     读取文件
     
     操作文件 (每次的操作不一样) (这里可以使用block)
     
     关闭文件
     */
    #pragma mark main函数
    int main(int argc, const char * argv[])
    {
        go2WorkInDay1();
        go2WorkInDay2();
        go2WorkInDay3();
        go2WorkInDay4();
    
        return 0;
    }
    
    
    

    相关文章

      网友评论

          本文标题:OC语言day06-14Block应用场景

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