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;

 

  

posted @ 2016-02-21 19:00  金先森  阅读(581)  评论(0编辑  收藏  举报