zoukankan      html  css  js  c++  java
  • 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单例传值会有内存问题,不能大量使用单例传值;

  • 相关阅读:
    I B
    让Xcode的控制台支持LLDB类型的打印
    UINavigationController和UIScrollView一起使用时导致UIScrollView位置偏移
    C语言中如何用printf函数输出百分号?
    运算符的优先级
    How To Ask Question The Smart Way
    WEB浅析(本人小白~)
    博客园的基础设置
    静态页面和动态页面的区别
    <存储小结>(待补充)
  • 原文地址:https://www.cnblogs.com/jiurong001/p/5197787.html
Copyright © 2011-2022 走看看