zoukankan      html  css  js  c++  java
  • IOS单例的设计模式

    static SurveyRunTimeData *sharedObj = nil; //第一步:静态实例,并初始化置为nil。

    @implementation SurveyRunTimeData

    + (SurveyRunTimeData*) sharedInstance    //第二步:实例构造检查静态实例是否为nil。

    {    

    @synchronized (self)     {

            if (sharedObj == nil)

            {            

          [[self alloc] init];

            }    

    }

        return sharedObj;

    }

    + (id) allocWithZone:(NSZone *)zone         //第三步:重写allocWithZone方法 {

        @synchronized (self) {        

      if (sharedObj == nil) {

                sharedObj = [super allocWithZone:zone];

                return sharedObj;

            }

        }

        return nil;

    }

    - (id) copyWithZone:(NSZone *)zone 

            //第四步

    {    

    return self;

    }

    - (id) retain {

        return self;

    }

    - (unsigned) retainCount {

        return UINT_MAX;

    }

    - (oneway void) release {   

      }

    - (id) autorelease {

        return self;

    }

    - (id)init {

        @synchronized(self) {

            [super init];            

    //往往放一些要初始化的变量.        

    return self;    

    }

    }

    @end

  • 相关阅读:
    牛客练习赛53 A-E
    算导第二章笔记 (归并排序 之 插入排序优化)
    LightOJ 1372 (枚举 + 树状数组)
    LightOJ 1348 (树链剖分 + 线段树(树状数组))
    Light OJ 1343
    Light OJ 1266
    Light OJ 1085
    CodeForces 671C
    Codeforces Round #352 (Div. 2) (A-D)
    ZOJ1008
  • 原文地址:https://www.cnblogs.com/zhibin/p/4118120.html
Copyright © 2011-2022 走看看