前言

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

单例类的创建

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. Java中的TreeMap、Comparable、Comparator

    我们知道HashMap的存储位置是按照key这个对象的hashCode来存放的,而TreeMap则是不是按照hashCode来存放,他是按照实现的Comparable接口的compareTo这个方法来 ...

  2. 【转载】perl接受传递参数的方法

    #! /usr/bin/perl use Getopt::Std;use warnings;use strict; sub read_from_sh($) { my $file = shift; my ...

  3. Dynamics AX 2012 R2 外部程序运行在没有AD的环境(如PDA) 调用AX服务

        Reinhard对这个问题研究了很久,也查了一些资料,整理了三种解决方案. 1.准备一台虚拟机A,A加入到了AD活动域,可以操作AX. PDA以远程桌面的方式,连接到虚拟机A. 在虚拟机上运行 ...

  4. Maven之Nexus构建企业级Maven仓库

    什么是Nexus? Nexus是Maven仓库管理器,用来搭建一个本地仓库服务器,这样做的好处是便于管理,节省网络资源,速度快,还有一个非常有用的功能就是可以通过项目的SNAPSHOT版本管理,来进行 ...

  5. mkdir递归创建目录

    mkdir递归创建目录 rmdir递归删除目录 -p:父目录为空时,一并进行创建-v:命令执行结果可视化mkdir -pv /tmp/x/y/zrmdir -p /tmp/x/y/z mkdir -p ...

  6. ubunt1204安装配置vsftp

    本文将搭建一个最简单的ftp服务,即通过root用户可进行登录.上传.下载,具体步骤如下: 1.安装vsftpd服务 sudo apt-get install vsftpd 2.编辑vsftp配置文件 ...

  7. rtsp里面的音频类型,大部分都默认规定了样本大小的。

    从src/audio_output/common.c里面的函数aout_BitsPerSample可知,rtsp里面的音频类型,大部分都默认规定了样本bit大小的.即是,一个音频编码类型,对应一个固定 ...

  8. ectouch第五讲 之表

    Ectouch本身相关的表 17个ecs_touch_activity[touch优惠活动扩展表] 优惠活动的自增id 取值ecs_favourable_activity表cat_id,给优惠活动加b ...

  9. 如何扩大ImageView的点击区域

    我们在开发中会遇到,给imageview设置点击事件,但是美工切的原始图片一般在24dp左右,这个尺寸点击时会出现不灵敏的情况(点击区域太小). 解决方案: 给imageView设置  scaleTy ...

  10. JavaScript DOM 编程艺术(第2版)读书笔记(6)

    案例研究:图片库改进版 我们在学校里学过一种理论,叫做结构化程序设计.其中有这样一条原则:函数应该只有一个入口和一个出口.从理论上讲,我很赞同这项原则:但在实际工作中,过分拘泥于这项原则往往会使代码变 ...