前言

  • 单例对象能够被整个程序所操作。对于一个单例类,无论初始化单例对象多少次,也只能有一个单例对象存在,并且该对象是全局的,能够被整个系统访问到。

单例类的创建

1.1 单例类的创建 1

  • 单例类的创建

    	class SingleClass1 {
    
    		var text:String = "default"
    
    		class var sharedInstance: SingleClass1 {
    struct Static {
    static var onceToken: dispatch_once_t = 0
    static var instance: SingleClass1? = nil
    }
    dispatch_once(&Static.onceToken) {
    Static.instance = SingleClass1()
    }
    return Static.instance!
    }
    }
  • 单例类对象的调用

    	var single1:SingleClass1 = SingleClass1.sharedInstance
    
    	single1.text = "QQ"
    
    	var str = SingleClass1.sharedInstance.text
    
    	println(str)

1.2 单例类的创建 2

  • 单例类的创建

    	class SingleClass2 {
    
    		var text:String = "default"
    
    		class var sharedInstance: SingleClass2 {
    struct Static {
    static let instance = SingleClass2()
    }
    return Static.instance
    }
    }
  • 单例类对象的调用

    	var single2:SingleClass2 = SingleClass2.sharedInstance
    
    	single2.text = "QQ"
    
    	var str = SingleClass2.sharedInstance.text
    
    	println(str)

1.3 单例类的创建 3

  • 单例类的创建

    	private let sharedKraken = SingleClass3()
    
    	class SingleClass3 {
    
    		var text:String = "default"
    
    		class var sharedInstance: SingleClass3 {
    return sharedKraken
    }
    }
  • 单例类对象的调用

    	var single3:SingleClass3 = SingleClass3.sharedInstance
    
    	single3.text = "QQ"
    
    	var str = SingleClass3.sharedInstance.text
    
    	println(str)

1.4 单例类的创建 4

  • 单例类的创建

    	class SingleClass4 {
    
    		var text:String = "default"
    
    		// This prevents others from using the default '()' initializer for this class.
    static let sharedInstance = SingleClass4()
    private init() {}
    }
  • 单例类对象的调用

    	var single4:SingleClass4 = SingleClass4.sharedInstance
    
    	single4.text = "QQ"
    
    	var str = SingleClass4.sharedInstance.text
    
    	println(str)

iOS - Swift SingleClass 单例类的更多相关文章

  1. iOS - OC SingleClass 单例类

    前言 单例对象能够被整个程序所操作.对于一个单例类,无论初始化单例对象多少次,也只能有一个单例对象存在,并且该对象是全局的,能够被整个系统访问到. 特点: 在内存中只有一个实例 提供一个全局的访问点 ...

  2. SingleClass单例类

    前言 对于一个单例类,无论初始化单例对象多少次,在程序的整个生命周期内,只会创建一个类的实例对象,而且只要程序不被杀死,该实例对象就不会被释放,并且该对象是全局的,能够被整个系统访问到. 在应用这个模 ...

  3. iOS中编写单例类的心得

    单例 1.认识过的单例类有哪些: NSUserDefaults.NSNotificationCenter.NSFileManager.UIApplication 2.单例类 单例类某个类在代码编写时使 ...

  4. ios开发之 -- 单例类

    单例模式是一种软件设计模式,再它的核心结构中指包含一个被称为单例类的特殊类. 通过单例模式可以保证系统中一个类只有一个势力而且该势力易于外界访问,从而方便对势力个数的控制并节约系统资源.如果希望在系统 ...

  5. iOS开发——Swift篇&单例的实现

    Swift实现单例模式 Swift实现单例模式 由于Swift语言弱化了struct和class之间的界限,这里我分别给出自己写的两种的单例实现 class版本: class SwiftSinglet ...

  6. [iOS]封装单例类

    [iOS]封装单例类 今天在学习iOS的SQLite开发,发现在需要使用SQLite的每个视图中,都需要对数据库进行打开或关闭,觉得挺麻烦的:于是在想能否写个单例类对这些操作进行封(因以前一直在使用D ...

  7. iOS开发之单例设计模式(完整正确版本)

    单例的意思从字面上就可以略知一二,所谓单例就是确保在程序运行过程中只创建一个对象实例.可以用于需要被多次广泛或者说多次使用的资源中,比如我们常见的网络请求类.工具类以及其它管理类等.比如我iOS开发中 ...

  8. GCD实现简单的单例类-Singletion

    什么是单例模式 1.单例模式是一个类在系统中只有一个实例对象.通过全局的一个入口点对这个实例对象进行访问.在 iOS 开发中,单例模式是非常有用的一种设计模式.如 下图,是一个简单单例模式的 UML ...

  9. iOS 如何创建单例对象

    一.什么是单例? 说到单例我就想起了我的java啊 ,不禁感叹起我的大学时光,学了4年的java开发,到现在还是放弃了我的java,踏入了iOS的行列. 算了,入正轨,我现在正是铁树银花的青春美少女, ...

随机推荐

  1. XML 解析 -- IE ,Chrome

    通用的method <script type="text/javascript"> //for chrome, attach method to XMLDocument ...

  2. POSTGRESQL9.5之pg_rman工具

    pg_rman是一款专门为postgresql设计的在线备份恢复的工具.其支持在线和基于时间点备份方式,还可以通过创建backup catalog来维护DB cluster备份信息. 看起来好像是模仿 ...

  3. Linux C socket 编程之TCP

    推荐:http://www.cnblogs.com/tianshuai11/archive/2011/11/30/2477224.html

  4. ACM题目————食物链

    题目描述 Description 动物王国中有三类动物 A,B,C,这三类动物的食物链构成了有趣的环形.A吃B,B吃C,C吃A. 现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并 ...

  5. java 四舍五入 保留俩位小数

    public static void main(String[] args) {              String str="0";              BigDeci ...

  6. Python学习笔记-Day2-Python基础之元组操作

    元组的常用操作包括但不限于以下操作: 元组的索引,计数等 这里将对列表的内置操作方法进行总结归纳,重点是以示例的方式进行展示. 使用type获取创建对象的类 type(tuple) 使用dir获取类的 ...

  7. HDU(1175),连连看,BFS

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1175 越学越不会,BFS还是很高级的. 连连看 Time Limit: 20000/100 ...

  8. 如何快捷输入函数上方的注释代码(Summary)

    写完类或函数(注意必须写完,不然出现的信息会不完整)后,在其上方空行输入/**,然后回车,就可以为其添加Summary.    

  9. Android HandlerThread 完全解析

    HandlerThread本质上是一个线程类,它继承了Thread: HandlerThread有自己的内部Looper对象,可以进行looper循环: 通过获取HandlerThread的loope ...

  10. easyui commbox嵌入一个checkbox的实现

    function InitComBoBox(datagrid, combxid, formid, url, valueField, textField,_prompt) { $(combxid).co ...