zoukankan      html  css  js  c++  java
  • IOS学习之路--BLOCK

    /*
     1.定义block变量:
     返回值类型 (^block变量名) (参数类型1, 参数类型2, ....);
     
     
     2.给block变量赋值
     block变量名 = ^(参数类型1 参数名称1, .....)
     {
        
     };
     */
    
    
    /*
     1.设置动画属性
     
     2.开始执行动画
     
     3.动画执行完毕
     
     block1 = ^{
        封装了动画开始执行前想做的事情
     };
     
     block2 = ^{
        封装了动画执行完毕后想做的事情
     };
     */
    
    #import <Foundation/Foundation.h>
    
    //typedef int MyInt;
    
    // MyBlock其实就是新的数据类型名称
    typedef int (^MyBlock)(int, int);
    
    /*
     需要掌握:
     1.定义block变量
     2.给block变量赋值
     3.type和block的应用
     */
    
    int main(int argc, const char * argv[])
    {
        MyBlock minus = ^(int a, int b)
        {
            return a - b;
        };
        int d = minus(10,5);NSLog(@"d id %d", d);
        
        
        MyBlock sum = ^(int v1, int v2)
        {
            return v1 + v2;
        };
        
        int e = sum(10, 11);
        NSLog(@"e is %d", e);
        
        
        /*
        int (^minusBlock) (int, int) = ^(int a, int b){
            return a - b;
        };
        minusBlock(10, 5);
        
        
        int (^averageBlock) (int, int) = ^(int a, int b)
        {
            return (a+ b)/2;
        };*/
        
        
        return 0;
    }
    
    void test2()
    {
        int a = 10;
        
        __block int b = 10;
        
        // block内部不能修改默认的局部变量
        // 定义一个block变量
        void (^block) () = ^{
            //a = 11;
            b = 11;
            NSLog(@"b=%d", b);
        };
        
        block();
        block();
        block();
    }
    
    void test()
    {
        // 左边的void:block没有返回值
        // 最右边的() :没有参数
        // 中间的(^)  block的标志,不能少
        void (^myblock)()  = ^{
            int a = 11;
            int b = 11;
            NSLog(@"a=%d, b=%d", a, b);
        };
        myblock();
        
        // 定义一个block变量,变量名是sumBlock
        // 最左边的int:block的返回值是int类型
        // 最右边的(int, int) block接受两个int类型的参数
        int (^sumBlock)(int, int);
        sumBlock = ^(int v1, int v2){
            return v1 + v2;
        };
        
        int sum = sumBlock(10, 11);
        NSLog(@"sum=%d", sum);
    }
  • 相关阅读:
    nginx 状态码整理
    nginx 添加perl
    Nginx 内置全局变量
    数组模板实现(新手遇到的格式问题)
    malloc的使用注意事项
    使用memset的注意事项!!!
    2019/3/31acm周三(三人)/CodeForces
    2019/3/31acm周三(三人)/LightOJ
    2019/3/31acm周三(三人)/hdu1042/高精度计算(未懂!)
    2019/3/24周赛坑题(读题)HDU 1412
  • 原文地址:https://www.cnblogs.com/xitang/p/3835806.html
Copyright © 2011-2022 走看看