zoukankan      html  css  js  c++  java
  • 两种单例模式的写法

    iOS的单例模式有两种官方写法,如下:

    (1)不使用GCD

    #import "ServiceManager.h"
    static ServiceManager *defaultManager;
    @implementation ServiceManager
    +(ServiceManager *)defaultManager{
        if(!defaultManager)
            defaultManager=[[self allocWithZone:NULL] init];
        return  defaultManager;
    }
    @end

    (2)使用GCD

    #import "ServiceManager.h"
    @implementation ServiceManager
    +(ServiceManager *)sharedManager{
        static dispatch_once_t predicate;
        static ServiceManager * sharedManager;
        dispatch_once(&predicate, ^{
            sharedManager=[[ServiceManager alloc] init];
        });
        return sharedManager;
    }
    @end

     dispatch_once这个函数,它可以保证整个应用程序生命周期中某段代码只被执行一次!

  • 相关阅读:
    对js数组的splice实现
    前端必读
    命令模式
    访问者模式
    观察者模式
    解释器模式
    装饰器模式
    组合模式
    抽象工厂模式
    搜索结果关键词高亮显示
  • 原文地址:https://www.cnblogs.com/jingxin1992/p/6959729.html
Copyright © 2011-2022 走看看