iOS - Swift SingleClass 单例类

前言

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

单例类的创建

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)
时间: 2024-10-24 19:20:23

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

iOS - OC SingleClass 单例类

前言 对于一个单例类,无论初始化单例对象多少次,在程序的整个生命周期内,只会创建一个类的实例对象,而且只要程序不被杀死,该实例对象就不会被释放,并且该对象是全局的,能够被整个系统访问到. 在应用这个模式时,单例对象的类必须保证只有一个实例存在.许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为.比如在 APP 开发中我们可能在任何地方都要使用用户的信息,那么可以在登录的时候就把用户信息存放在一个文件里面,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这

PHP里的单例类写法实例_php实例

PHP里的单实例类在进行数据交换,节省内存上还是很有意义的.写个简单例子. 类1,单实例类本身: class UTIL { private static $instance; public function get() { if (!self::$instance) { self::$instance = new UTIL(); } return self::$instance; } public $number = 10; public function change($num) { $thi

PHP里的单例类写法实例

  这篇文章主要介绍了PHP里的单例类写法实例,本文直接给出代码实例,需要的朋友可以参考下 PHP里的单实例类在进行数据交换,节省内存上还是很有意义的.写个简单例子. 类1,单实例类本身: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 class UTIL { private static $instance; public function get() { if (!self::$instance) { self::$instance = new UTIL(

关于将socket对象作为单例类的成员变量

问题描述 业务场景:1.系统在初始化时创建Socket对象(客户端)2.将创建的Socket对象作为系统全局变量,共其他方法使用.我的实现思路方法大致如下://系统初始化类publicclassInitialize{publicvoidinit(){Socketsocket=newSocket(ipAddress,port);//创建socket连接SocketSingleIntancessi=SocketSingleIntance.getSingleIntance();//将socket交由单

iOS利用单例实现不同界面间的数据传输

  首先写一个单例类,继承NSObject check.h文件中 @property(strong ,nonatomic) UITable * Table; @property(strong ,nonitomic) UITextFiled * Text; +(check*)shareDataModle; check.m中 //定义一个静态的checke类的对象,并赋给一个空值 static check * dataModle = nil; +(check*)shareDataModle { if

iOS中类单例方法的一种实现

在Cocos2D编程中,很多情况我们需要类只生成一个实例,这称之为该类的单例类. 一般我们在类中这样实现单例方法: +(instancetype)sharedInstance{ static Foo *sharedInstance; if(!sharedInstance){ sharedInstance = [Foo new]; } return sharedInstance; } 注意静态变量sharedInstance也可以放到类外部去. 但是如果是多线程环境中,上述方法并不能一定保证生成唯

设计模式C#描述——单例与多例模式

设计 设计模式C#描述--单例与多例模式 作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 单例模式有以下特点: 单例类只能有一个实例. 单例类必须自己创建自己的唯一实例. 单例类必须给所有其他对象提供这一实例. 一个典型的单例类的实现如下所示:其中构造子私有表示子类不能被继承. public class Singleton { private static Singleton m_instance = null; private

设计模式C#描述-单例与多例模式

作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 单例模式有以下特点: 单例类只能有一个实例. 单例类必须自己创建自己的唯一实例. 单例类必须给所有其他对象提供这一实例. 一个典型的单例类的实现如下所示:其中构造子私有表示子类不能被继承. public class Singleton{private static Singleton m_instance = null; private Singleton(){}public sta

asp.net中C++单例实现问题分析

  方案一  代码如下   class QMManager { public:     static QMManager &instance()     {         static QMManager instance_;         return instance_;     } } 这是最简单的版本,在单线程下(或者是C++0X下)是没任何问题的,但在多线程下就不行了,因为static QMManager instance_;这句话不是线程安全的. 在局部作用域下的静态变量在编译时