• 我所了解的block


    本文章参照李明杰老师的视频.

    使用block 首先要会声明和实例化block

    block  的声明:

    block  分为 有返回值有参数,没返回值有参数,有返回值没参数,没返回值没参数  几种情况

    有返回值 有参数的 int (^argReturnBlock)(int,int);

    其他几种分别是 int (^ReturnBlock)();    

    void (argBlock)(int,int);

    void (nonBlock)();

    然后实例化

    举一个例子:

    int (int argReturnBlock)(int,int);

    argReturnBlock = ^(int v1,int v2){

      return v1 + v2;

    };

    最后是调用

    int result = ArgReturnBlock (13,34);

    /////////////////////////////////////////////////////////

    block 的回调的使用例子;

    监听按钮是否被点击了

     MyButton * btn = [[MyButton alloc] init];
       
        btn.buttonBlock = ^(MyButton *testbtn){
            NSLog(@"%@___被店家了",testbtn);
        };
        
        
        
        
        [btn click];
    

     在调用click 方法的时候,会回调到上面的block  方法中去.

    #import <Foundation/Foundation.h>
    
    @class MyButton;
    
    typedef void(^listenBlock)(MyButton *sender);
    
    @interface MyButton : NSObject
    
    @property (nonatomic,assign) listenBlock buttonBlock;
    
    
    - (void)click;
    @end
    

     在

    #import "MyButton.h"
    
    @implementation MyButton
    
    - (void)click
    {
        _buttonBlock(self);
    }
    @end
    

    程序运行顺序是当调用click  方法的时候,

    会跳转到MyButton.m 中的click 方法中,在这个方法中有_buttonBlock(self);

    就会跳转到_buttonBlock 声明的地方,就是外面实例化该block 的地方.

    block  的用途:

    再有block 是怎么存储的,

  • 相关阅读:
    磁盘与文件系统管理
    zookeeper安装部署
    linux打包与压缩
    MongoDB聚合查询
    scrapy中选择器用法
    scrapy基本用法
    python操作mongoDB
    超详细windows安装mongo数据库、注册为服务并添加环境变量
    python beautifulsoup基本用法-文档搜索
    python beautifulsoup基本用法-文档结构
  • 原文地址:https://www.cnblogs.com/yinyakun/p/4047206.html
Copyright © 2020-2023  润新知