码迷,mamicode.com
首页 > 移动开发 > 详细

IOS单例的设计模式

时间:2014-11-24 11:30:23      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:io   ar   os   sp   on   bs   as   new   nbsp   

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

IOS单例的设计模式

标签:io   ar   os   sp   on   bs   as   new   nbsp   

原文地址:http://www.cnblogs.com/zhibin/p/4118120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!