iOS基础之单例传值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS基础之单例传值相关的知识,希望对你有一定的参考价值。

  在之前的界面通信中,我们讲诉了3种传值方法,现在我们提供一种更为方便的传值方法叫做单例传值。

  单例的优点在于创建时是全局变量,可以在外部可以使用,没有逐级传值的局限性。但是单例传值会有内存问题,不能将单例进行内存释放,大量创建单例传值,会造成内存问题。

  代码演示:

#import "Handler.h"
//创建单例
static Handler *handler = nil;

@implementation Handler 

+ (instancetype)shareInstance{    

    @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;

 

  

以上是关于iOS基础之单例传值的主要内容,如果未能解决你的问题,请参考以下文章

属性传值,协议传值,block传值,单例传值四种界面传值方式

单例传值

Handler(单例传值)

iOS开发之界面间传值

iOS开发之界面间传值

iOS几种常见的页面传值方式