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

时间: 2024-07-29 15:10:43

IOS单例的设计模式的相关文章

iOS单例宏

先别急,先简单提一下单列的概念,当然具体的描述可能仁者见仁智者见智了! 1.单例设计模式(Singleton) 1> 什么是单列: 它可以保证某个类创建出来的对象永远只有1个 2> 作用(为什么要用) 节省内存开销 如果有一些数据, 整个程序中都用得上, 只需要使用同一份资源(保证大家访问的数据是相同的,一致的) 一般来说, 工具类设计为单例模式比较合适 3> 怎么实现,老程序员是碰到这样的问题的!arc下就少了! MRC(非ARC) ARC 废话少说,先来看一下我的单例模式下的头文件!

ios单例的实现

单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例. 这里主要介绍下在arc下,利用gcd实现单例. 第一步:声明一个静态实例 static SoundTool *_instance; 第二步:重写初始化方法 + (id)allocWithZone:(struct _NSZone *)zone 在对象初始化分配内存的时候都会调用这个方法,重写该方法时,即便用户没用通过shared方法获取实例,自己初始化依然可以保证得到的是同一个实例. 在gcd后,多线程下保证一个代码只被执

iOS单例创建的一点疑惑

线程安全的单例常用写法, +(AccountManager *)sharedManager{ static AccountManager *defaultManager = nil; disptch_once_t once; disptch_once(&once,^{ defaultManager = [[self alloc] init]; }); return defaultManager; } 在用的过程中,有点疑惑的点是:static AccountManager *defaultMan

蓝懿 iOS iOS单例销毁

1 单例的实现见之前写过的一篇文章 iOS单例的快速实现 static InstanceClass *instance; + (InstanceClass *)defaultInstance{ @synchronized (self){ if (instance == nil) { instance = [[InstanceClass alloc] init]; } } return instance;} 2 单例的概念复习下 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而

单例的设计模式代码演示

1.饿汉式 1 package com.wisezone.singleton02; 2 /** 3 * java中有23种对象设计模式 4 * 单例设计模式:解决一个类中只存在一个对象 5 * @author 王东海 6 * @date. 2016年8月30日 7 * @version v1.0 8 */ 9 //饿汉式:先初始化对象. 10 public class Singleton 11 { 12 //private的构造器,不能在类的外部创建该类的对象 13 private Single

iOS 单例

iOS 单例 1.官方文档写法 static AccountManager *DefaultManager = nil; + (AccountManager *)defaultManager { if (!DefaultManager) DefaultManager = [[self allocWithZone:NULL] init]; return DefaultManager; } 2.来自 objcolumnist + (AccountManager *)sharedManager { s

IOS 单例设计模式解读

IOS 中单例设计模式的解读与用法 一.单例的作用 顾名思义,单例,即是在整个项目中,这个类的对象只能被初始化一次.它的这种特性,可以广泛应用于某些需要全局共享的资源中,比如管理类,引擎类,也可以通过单例来实现传值.UIApplication.NSUserDefaults等都是IOS中的系统单例. 二.单例的写法 单例的写法常用的有两种方式: 方式1.不考虑线程 static SingleCase *manager = nil;       + (SingleCase *)defaultMana

ios 单例设计模式

单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类.单例可用性非常高,用于登录用户管理等可供全局调用. + (AccountManager *)sharedManager { static AccountManager *sharedAccountManagerInstance = nil; static dispatch_once_t predicate; dispatch_once(&predicate, ^{ shar

iOS单例

ios之单例模式 原帖地址:http://www.galloway.me.uk/tutorials/singleton-classes/ 本文为博主自行翻译,转载请注明出处:http://blog.csdn.net/iosevanhuang/article/details/13278323 “单例模式”是我在iOS中最常使用的设计模式之一.单例模式不需要传递任何参数,就有效地解决了不同代码间的数据共享问题. 背景 单例类是一个非常重要的概念,因为它们表现出了一种十分有用的设计模式.单例类的应用贯