美文网首页
iOS-OC和Swift单利创建

iOS-OC和Swift单利创建

作者: Simple_Code | 来源:发表于2017-07-21 11:19 被阅读111次

OC单利

#import "HttpTools.h"
+ (instancetype)shareManager;
#import "HttpTools.m"
+ (instancetype)shareManager
{
    static id instance;
    static dispatch_once_t onceToken;
    // onceToken默认等于0, 如果是0就会执行block, 如果不是0就不会执行
    dispatch_once(&onceToken, ^{
        instance = [[self alloc] init];
    });
    return instance;
}

Swift单利

推荐使用

// HttpTools.swift
    static let instance: HttpTools = HttpTools()

    class func shareHttpTools() -> HttpTools {
        return instance
    }

仿OC版

// 在Swift中, 类方法中是不允许定义静态变量的
    static var once_t: dispatch_once_t = 0
    static var instance: HttpTools?
    
    /// 用于获取单粒对象的类方法
    class func shareHttpTools() -> HttpTools{
        dispatch_once(&once_t) { () -> Void in
            instance = HttpTools()
        }
        return instance!
    }

单利优缺点

优点:

1:一个类只被实例化一次,提供了对唯一实例的受控访问。
2:节省系统资源

缺点:

1: 单例对象一旦建立,对象指针是保存在静态区的,单例对象在堆中分配的内存空间,会在应用程序终止后才会被释放。
2: 单例类无法继承,因此很难进行类的扩展。
3: 单例类的职责过重,在一定程度上违背了“单一职责原则”。
4: 单例不适用于变化的对象,如果同一类型的对象总是要在不同的用例场景发生变化,单例就会引起数据的错误,不能保存彼此的状态。

相关文章

  • iOS-OC和Swift单利创建

    OC单利 Swift单利 推荐使用 仿OC版 单利优缺点 优点: 缺点:

  • iOS Swift 单利创建

    和oc不太一样,直接上代码

  • 2019-06-10

    swift中单利的写法 懒加载

  • swift 单利

    swift的单利创建 其实就是关键词 static 修饰的shared 存储在全局区 全局只有一个 share...

  • swift 单利的三种写法

    1.全局变量(单行单利方法) swift单利几种写法的演变过程[http://www.cocoachina.com...

  • 仿今日头条新闻上下拉刷新

    一.实现业务处理层 // 创建单利方法 + (instancetype)shareLoadData; // 创建解...

  • 天气预报Demo

    LoadData.h: // 创建单利方法 +(instancetype)showCityMessage; // ...

  • 2018-07-01粑粑

    LoadData.h里 // 创建单利方法 +(instancetype)showCityMessage; // ...

  • 创建绝对单例2

    之前写过一篇怎么创建绝对单利,最近有了一个新的想法。创建绝对单利的目的无非是不管用什么创建对象的方法,创建出来的对...

  • Swift: 你好, UIKit!

    创建主入口 main.swift: 创建 app.swift, 对应 MainApp 和 MainAppDeleg...

网友评论

      本文标题:iOS-OC和Swift单利创建

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