iOS开发 之闭包(Block)

来源:互联网 发布:php高级工程师简历 编辑:程序博客网 时间:2024/05/22 00:13

一、闭包初解

        Block : 闭包 又叫代码块 是一个独立的整体 可以当做参数来传递

        Block也算是一个函数

        Block能够读取其他函数的内部变量

        Block还可以访问、修改内部变量

        

        使用Block的好处 :可以组织独立的代码段 提高代码的复用性可读性

        Block重要特点 常用于一个操作完成后的回调


二、有返回值的闭包

        有返回值的Block公式        返回值类型(^block的名字)(形参列表)= ^(形参列表){            return 返回值类型的一个参数        };                         int(^sum)(int a,int b)= ^(int a,int b){            return a+b;        };        NSLog(@"%d",sum(1,1)*25);

练习


        NSMutableDictionary *dic = [NSMutableDictionary dictionary];        NSDictionary *(^add)()= ^(){            [dic setObject:@"邓小平" forKey:@"name"];                        NSDictionary *d = [dic copy];                        return d;        };        NSLog(@"%@",add());         //       定义一个字符串 是具体说话的内容 调用block 在说话内容的前面添加@“他说:”返回一个拼接号的字符串               NSString *(^by)(NSString *s)= ^(NSString *s){           NSString *r = [NSString stringWithFormat:@"他说:%@",s];           return r;        };        NSLog(@"%@",by(@"你真帅"));

三、无返回值的闭包

        block 公式 声明和实现        无返回值的Block公式1、 :          void (^block的名字)(形参列表)= ^(形参列表){具体实现代码};        无返回值的Block公式2、 :          void (^block的名字)(形参列表);          block的名字 = ^(形参列表){具体实现代码};

   void (^wahaha)();        wahaha = ^(){            NSLog(@"水");        };        wahaha ();                  void (^miao)()= ^(){            NSLog(@"喵~");        };        miao ();//        block 调用//        block 名字(实参);        void (^miao1)();        miao1 = ^(){            NSLog(@"喵喵~");        };        miao1 ();




0 0