美文网首页Swift
iOS - Swift中的单例声明方法

iOS - Swift中的单例声明方法

作者: 俺不是大佬儿 | 来源:发表于2022-05-14 11:37 被阅读0次

单例在iOS开发中是一个很常见的模式。

对于一些希望能在全局方便访问的实例,或者在App 的生命周期中只应该存在一个的对象(只会被初始化一次)我们一般都会使用单例模式来存储和访问

Objective-C 中单例常用声明方法:

使用GCD 中的dispatch_once_t 保证里面的代码只会被调用一次,以此保证单例在线程上的安全

以我封装的一个HTTPService请求类为例:

#pragma mark -  HTTPService
+ (instancetype)sharedInstance {
    static HTTPService *service_ = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        service_ = [[HTTPService alloc] init];
    });
    return service_;
}

Swift 中单例声明方法:

Swift 中可以使用let修饰保证线程安全

同样以一个请求类(OrigRequest)为例
第一种

class OrigRequest: NSObject {
    //第一种
    class var sharedRequest:OrigRequest{
        struct Static {
            static let sharedInstance:OrigRequest = OrigRequest()
        }
        return Static.sharedInstance
    }
  }

第二种

private let sharedInstance = OrigRequest()

class OrigRequest: NSObject {
    //第二种
    class var sharedRequest:OrigRequest {
        return sharedInstance
    }
   } 

第三种(最简单的方法)

class OrigRequest: NSObject {
    //第三种
    static let sharedRequest = OrigRequest()
}

\color{gray}{欢迎大佬儿来指正纠错,共同学习😏!!}

相关文章

  • iOS - Swift中的单例声明方法

    单例在iOS开发中是一个很常见的模式。 对于一些希望能在全局方便访问的实例,或者在App 的生命周期中只应该存在一...

  • swift语法-14单例

    swift语法-14单例 OC中单例 Swift中单例 简写 Swift中最长用的方法

  • 懒加载和单例

    懒加载 声明属性 重写get方法 Swift 单例的创建方式 方式一:创建单例工厂方法(重写alloc完善) 声明...

  • iOS 单例

    Objective-C 单例宏 Swift 单例声明

  • 单例模式的书写

    ARC OC 中的单例 根据OC单例 改写成 Swift 中的单例 OC调用swift,需要#import "单例...

  • Swift 声明单例

  • Swift中如何编写单例?

    在使用swift编程语言进行iOS应用开发的时候,我们常常借助单例来进行状态管理,但由于实现单例的方法很多,问题就...

  • Swift中的单例

    转战swift有几天了,接触到了swift中的单例,下面介绍一下swift中的单例: 仿照OC中的单例的写法,写一...

  • 单例

    内存中只有一个对象实例 提供一个全局访问点 OC中的单例 swift中的单例 swift改进过的单例

  • iOS 单例模式

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

网友评论

    本文标题:iOS - Swift中的单例声明方法

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