• 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);
    }
  • 相关阅读:
    (转载)MP3 编码解码 附完整c代码
    (转载) 一个大概的框架
    (转载)音视频相关的书籍,多媒体技术
    js原生选项卡切换
    点击div删除div本身
    鼠标移入旋转动画
    鼠标移入,改变border颜色
    小白初建博客!
    java设计模式--六大原则
    java设计模式--策略模式
  • 原文地址:https://www.cnblogs.com/xitang/p/3835806.html
Copyright © 2020-2023  润新知