zoukankan      html  css  js  c++  java
  • iOS

    前言

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

    单例类的创建

    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)
      
  • 相关阅读:
    出现 could not open jvm.cfg 的解决办法
    powerdesigner相关概念理解
    UML建模类图
    LAMP环境折腾
    ThinkPHP学习笔记1
    ubuntu14在kDE界面下的关于eclipse提示框黑色背景的修改!
    LAMP环境安装与apache配置
    Unix网络编程---第四次作业
    Unix网络编程---第三次作业
    Unix网络编程---第二次作业
  • 原文地址:https://www.cnblogs.com/QianChia/p/5777501.html
Copyright © 2011-2022 走看看