zoukankan      html  css  js  c++  java
  • 28.怎样在Swift中实现单例?

    1.回忆一下OC中的单例实现

    //AFNetworkReachabilityManager中的单例,省略了其他代码
    @interface AFNetworkReachabilityManager : NSObject

      + (instancetype)sharedManager;

    @end
    
    @implementation AFNetworkReachabilityManager
    
    + (instancetype)sharedManager {
        static AFNetworkReachabilityManager *_sharedManager = nil;
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            _sharedManager = [self manager];
        });
    
        return _sharedManager;
    }
    
    @end

    2.Swift中的单例实现

      在Swift中,有多种方式可以创建单例,比较常用也推荐使用的是如下的方式:

    class GofUserSession
    {
        static let shareInstance = GofUserSession();
        
        private init() {}
        
    }

      提供一个空的私有init()方法,可以保证单例是真正唯一的,避免外部对象通过访问init方法创建单例类的其他实例。

  • 相关阅读:
    Spring-12-spring整合Mybatis
    Spring-11-AOP面向切面编程
    jQuery选择器之表单元素选择器
    phpsmarty分配变量
    angular
    ajax 第四步
    ajax第三步
    php+ajax+jq
    二十三种设计模式[4]
    二十三种设计模式[3]
  • 原文地址:https://www.cnblogs.com/LeeGof/p/5684511.html
Copyright © 2011-2022 走看看