Handler(单例传值)

1 声明单例字符串类型,以copy类型

2 单例是类方法

3 返回值类型是 instancetype

4 单例不能释放 

#import "Handler.h"

 

static Handler *handler = nil;//需要把单例创建为全局变量 

 

@implementation Handler 

 

+ (instancetype)shareInstance{    

 

    //加锁的意思。多线程访问会出现 alloc多次。保证创建过程在同一时间内只允许一个线程对象访问

    @synchronized(self) {//任意对象

    if (handler == nil) {

    handler = [[Handler alloc] init];//如果是空就创建否则 不创建

       }

    }

    return handler;

}

 

 具体使用:

1 创建好单例类,引入单例的头文件

   //初始化,创建单例

    Handler *handler = [Handler shareInstance];

    //把要传的值(UITextField的值) 赋值给单例内部声明的属性

    handler.string = _textField.text;

2 接收要传的数值,引入单例的头文件,

    //一样初始化单例

    //创建单例

    Handler *handler = [Handler shareInstance];

    //接收单例的值,传给label

    label.text = handler.string;

 

 

注意:Handler的创建时全局的变量,所以在外部可以使用,没有逐级传值的局限性,像属性和协议传值那样。优势很明显,但是handler单例传值会有内存问题,不能大量使用单例传值;

 

转载于:https://www.cnblogs.com/jiurong001/p/5197787.html

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值