博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Swift之单例模式
阅读量:4991 次
发布时间:2019-06-12

本文共 1033 字,大约阅读时间需要 3 分钟。

三种Swift实现单例模式的方法:全局变量,内部变量,dispatch_once方式

1. 全局变量

private let _singleton = Singleton()  class Singleton: NSObject {      class var sharedInstance: Singleton {          get {              return _singleton          }      }  }

  

2. 内部变量

class Singleton {      class var sharedInstance: Singleton {          get {              struct SingletonStruct {                  static let singleton: Singleton = Singleton()              }               return SingletonStruct.singleton          }      }  }

  

3. dispatch_once方式

class Singleton {      class var sharedInstance: Singleton {          get {              struct SingletonStruct {                  static var onceToken:dispatch_once_t = 0                  static var singleton: Singleton? = nil              }              dispatch_once(&SingletonStruct.onceToken, { () -> Void in                  SingletonStruct.singleton = Singleton()              })              return SingletonStruct.singleton!          }      }  }

  

转载于:https://www.cnblogs.com/xiaohuzi1990/p/4560614.html

你可能感兴趣的文章
C#将Word转换成PDF方法总结(基于Office和WPS两种方案)
查看>>
oracle查锁表
查看>>
PHP SSH2 不支持 IdentityFile
查看>>
eclipse 僵死/假死 问题排查及解决
查看>>
番茄时间
查看>>
四位计算机的原理及其实现【转】
查看>>
mediawiki简易安装文档
查看>>
Ubuntu server 命令备忘
查看>>
yum常用操作
查看>>
MES系统框架及MES开源框架|C/S框架网软著产品
查看>>
以boost::function和boost:bind取代虚函数
查看>>
linux 下启动SVN服务
查看>>
vue框架学习
查看>>
现代计算机接口实验 (三)8255实验
查看>>
spring——获取ClassLoader
查看>>
javascript函数
查看>>
luogu4093 序列 (cdq分治优化dp)
查看>>
BZOJ 2588: Spoj 10628. Count on a tree( LCA + 主席树 )
查看>>
从零开始学算法(一)
查看>>
d3d 纹理坐标1:1对应到屏幕坐标.
查看>>