IOS单例模式

作者: devZhang | 来源:发表于2016-05-12 21:30 被阅读0次

单例:

--1. 概念:单例模式是确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类,称为单例类。
--2. 使用场景:iOS中几乎所有的APP都只能同时登录一个帐号,而且是电商类的APP中下单是也要带着用户ID,这时候单例就非常重要了。

创建方法

** 1.使用线程锁@synchronized(self) {} 控制某一时间只允许一个进程访问初始化方法 **

 static User *instance
 + (instancetype)shareUser
{
        @synchronized(self) {     //设置同时只有一个线程可以访问shareUser方法
        if (!instance) {
            instance = [[self alloc] init];
        }
    }
    return instance;
}

--有人提供了一种说是绝对安全的方法。就是将 allocWithZone copyWithZone 等方法都重写

** 2.使用GCD 初始化线程只执行一次 **

+ (instancetype) shareUserGCD
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
            instance = [[self alloc] init];
    });
    return instance;
}

测试:

User *xiaoming = [User shareUser];
   xiaoming.name = @"xiaoming";//User类有一个一个name属性 
User *lily = [User shareUser]; 
NSLog(@" xiaoming.name = %@",xiaoming.name);
NSLog(@" lily.name = %@,lily.name");

输出结果为:

lily.name = xiaoming```

 > 分析:lily.name并没有赋值,但是lily.name = xiaoming,
由此可见 xiaoming 与lily就是一个对象,单例创建成功
--也可以输出一个 xiaoming与lily的内存地址,相等即为单例



```文 借鉴自/ManoBoo(简书作者)```

相关文章

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • iOS 单例模式

    关于单例模式的详解,看完这几篇,就完全了然了。iOS 单例模式iOS中的单例模式iOS单例的写法

  • iOS 单例模式 or NSUserDefaults

    本文内容:iOS的单例模式NSUserDefaults的使用总结:iOS单例模式 and NSUserDefaul...

  • 单例模式 Singleton Pattern

    单例模式-菜鸟教程 iOS中的设计模式——单例(Singleton) iOS-单例模式写一次就够了 如何正确地写出...

  • 【设计模式】单例模式

    学习文章 iOS设计模式 - 单例 SwiftSingleton 原理图 说明 单例模式人人用过,严格的单例模式很...

  • iOS模式设计之--创建型:1、单例模式

    iOS模式设计之--1、单例模式

  • iOS单例模式容错处理

    ios 单例模式容错处理 1、单例模式的使用和问题解决 在ios开发的过程中,使用单例模式的场景非常多。系统也有很...

  • 谈一谈iOS单例模式

    这篇文章主要和大家谈一谈iOS中的单例模式,单例模式是一种常用的软件设计模式,想要深入了解iOS单例模式的朋友可以...

  • iOS知识梳理3:设计模式

    iOS有哪些常见的设计模式?单例模式/委托模式/观察者模式/MVC模式 单例模式 单例保证了应用程序的生命周期内仅...

  • 单例对象

    iOS单例模式(Singleton)单例模式的意思就是:只有一个实例;单例模式确保每个类只有一个实例,而且自行实例...

网友评论

    本文标题:IOS单例模式

    本文链接:https://www.haomeiwen.com/subject/aspprttx.html