• block的简单使用


    一: 定义block 初始化

    #import <UIKit/UIKit.h>

     

    @interface LHQDemoView : UIView

    - (instancetype)initWithFrame:(CGRect)frame andCompelete:(void(^)(NSString *msg))block;

     

     

    - (instancetype)initWithFrame:(CGRect)frame andCompelete:(void(^)(NSString *msg))block{

        if(self = [super initWithFrame:frame]){

            UIButton *btn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];

            [btn setTitle:@"提示" forState:UIControlStateNormal];

            [btn addTarget:self action:@selector(btnClicked:) forControlEvents:UIControlEventTouchUpInside];

            [self addSubview:btn];

            self.block = block;

        }

        return self;

    }

     

     

     

     

    二: 定义全局block

    @interface LHQDemoView()

    //block定义的时候一定要用copy

    /*

     block默认在栈中  栈中内存归系统管理

     系统管理有个弊端:到作用于结束就被干掉

     执行了一个copy操作之后,就会把block从栈中放到堆中

     会自动有一个强引用来指向它

     

     

     */

    @property(nonatomic,copy)void(^block)(NSString *);

     

    设置

    self.block = block;

     

     

     

     

    三: 给block赋值

    - (void)btnClicked: (UIButton *)btn{

        self.block(@"点击了某个按钮");

        NSLog(@"btnClicked");

    }

     

     

    四: 使用

      导入头文件

    #import "LHQDemoView.h"

    @interface ViewController ()

     

    @end

     

     

     LHQDemoView *demoView = [[LHQDemoView alloc]initWithFrame:CGRectMake(100, 200, 100, 100) andCompelete:^(NSString *msg) {

            UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:msg delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil, nil];

            [alert show];

        }];

        [self.view addSubview:demoView];

     

     

     

     

     

     

     

  • 相关阅读:
    jquery开发之第一个程序
    结构体大小求值
    SpringMVC 理论与有用技术(一) 简单、有用、易懂的几个实例
    北极的夜空
    Assignment (HDU 2853 最大权匹配KM)
    让linux history命令显示命令的运行时间、在哪个机器运行的这个命令
    [0day]基础工具学习
    Matlab adaptive quadrature
    计蒜之道 初赛 第三场 题解 Manacher o(n)求最长公共回文串 线段树
    辛星跟您解析在CSS面包屑中三角形的定位问题
  • 原文地址:https://www.cnblogs.com/LiLihongqiang/p/7086400.html
Copyright © 2020-2023  润新知