zoukankan      html  css  js  c++  java
  • Block简单使用

    1.用typedef声明一个block

    ①无参数无返回值

    typedef void(^Block)(void);
    @property (nonatomic, copy) Block completeBlock ;

    ②带参数

    typedef void(^HKCompleteBlock)(BOOL completed);

    2.用@property声明Block

    ①无参数无返回值

    @property (nonatomic, copy) void (^touchBlock)(void);

    ②带参数

    @property (copy, nonatomic) void (^selectBlock)(NSInteger index);

    ③带返回值的Block

    - (void (^)(int value))add
    {
        return ^(int value){
            _reslut += value;
        };
    }

    ④无返回值的Block

        // 声明定义
        // 返回值(^block变量名)(参数)
        // block作用:保存一段代码
        
        void (^block)() = ^(){
            
            NSLog(@"调用block");
        };
        
        block();

    ⑤参数使用

    - (void)calculator:(int (^)(int result))block
    {
       _reslut = block(_reslut);
        
        return _reslut;
    }

     其他:

        // block定义:三种方式 = ^(参数){};
        // 第一种
        void(^block1)() = ^{
            NSLog(@"调用了block1");
        };
        // 第二种 如果没有参数,参数可以隐藏,如果有参数,定义的时候,必须要写参数,而且必须要有参数变量名
        void(^block2)(int) = ^(int a){
            
        };
        // 第三种 block返回可以省略,不管有没有返回值,都可以省略
        int(^block3)() = ^int{
            return 3;
        };
        // block类型:int(^)(NSString *)
        int(^block4)(NSString *) = ^(NSString *name){
            return 2;
        };

    //代理修饰:

    @property (nonatomic, weak) id<MyDelegate> delegate;

     

     

     

     

  • 相关阅读:
    SCU3033 Destroying a Painting(最小费用最大流)
    HDU4859 海岸线(最小割)
    ZOJ3228 Searching the String(AC自动机)
    HUST1024 dance party(最大流)
    SGU438 The Glorious Karlutka River =)(最大流)
    SPOJ839 Optimal Marks(最小割)
    BZOJ1086 [SCOI2005]王室联邦(树分块)
    SCU3109 Space flight(最大权闭合子图)
    HDU3138 Coconuts(最小割)
    ZOJ2539 Energy Minimization(最小割)
  • 原文地址:https://www.cnblogs.com/StevenHuSir/p/block.html
Copyright © 2011-2022 走看看