前言

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

单例类的创建

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. Linux下创建与解压tar, tar.gz和tar.bz2文件及压缩率对比 | 沉思小屋

    刚 在qq群里面一位仁兄问到文件压缩的命令,平时工作中大多用解压缩命令,要是遇到压缩就现查(这不是一个好习惯),于是整理下Linux下创建与解压 zip.tar.tar.gz和tar.bz2文件及他们 ...

  2. PHP获取客户端真实IP的自定义函数

    <?php //虽然使用 $_SERVER[REMOTE_ADDR] 也可以获取,但是要获取真实的客户端IP地址,需要使用下面的方法: function _getIP(){ $ip=getenv ...

  3. C#:写日志

    一.直接写入文件 /// <summary> /// 将message的内容写入日志文件 /// </summary> /// <param name="msg ...

  4. Linux下Date命令的用法

    转自http://blog.chinaunix.net/uid-8223172-id-2511672.html linux下date的用法比较复杂,但是也用的比较多,尤其是shell里面.现总结一下自 ...

  5. UVa(12821),MCMF

    题目链接:https://uva.onlinejudge.org/external/128/12821.pdf 比赛的时候,准备用最短路来做,存两张图,做两次最短路,本来还觉得第二张图的设计很好的,很 ...

  6. 操作SQLite的dbhelper

    操作SQLite的dbhelper public class DbHelper { string connStr = @"Data Source=" + System.Enviro ...

  7. PHP比较运算!=和!==

    PHP!=和!==的区别 !==是指绝对不等于,比如,$a = 3, $b="3" 那么,$a!==$b成立,可是$a!=$b不成立:

  8. 机器人走方格 V3

    1120 . 机器人走方格 V3   基准时间限制:1 秒 空间限制:65536 KB 分值: 160 N * N的方格,从左上到右下画一条线.一个机器人从左上走到右下,只能向右或向下走.并要求只能在 ...

  9. java 7-nio异步I/O-将来式和回调式

    java7中三个异步通道 1.AsynchronousFileChannle:用于文件I/O 2.AsynchronousSockeChannle:用于套接字I/O,支持连接超时 3.Asynchro ...

  10. anroid打包

    http://blog.csdn.net/qq435757399/article/details/46634363 转载 Gradle打包APP签名 默认情况下,debug被配置成使用一个debug ...