iOS开发之——单例的几种设计方式

单例是ios开发中常用的一种设计模式,通常用来控制器之间传值。方便、高效,全局通用。

单例模式的设计分为ARC和MRC。

ARC:

方式一

1、创建一个继承自NSObject的类。

2、在这个类的.h文件中声明类方法:

+ (instancetype)sharedInstance;

2、在这个类的.m文件中实现以下方法:

static id instance;

+ (instancetype)sharedInstance

{

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

instance = [[super alloc] init];

});

return instance;

}

+ (instancetype)allocWithZone:(struct _NSZone *)zone

{

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

instance = [super allocWithZone:zone];

});

return instance;

}

方式二:

时间: 2024-10-19 12:09:14

iOS开发之——单例的几种设计方式的相关文章

IOS单例的两种实现方式

单例模式算是开发中比较常见的一种模式了.在iOS中,单例有两种实现方式(至少我目前只发现两种). 根据线程安全的实现来区分,一种是使用@synchronized ,另一种是使用GCD的dispatch_once函数. [email protected]synchronized 实现 static InstanceClass *instance; + (InstanceClass *)defaultInstance{ @synchronized (self){ if (instance == ni

IOS开发模式——单例

单例的模式在网上有很多,今天发下我个人对单例模式的理解.整个app中只存在一个实例,也只会进行一次实例,在实例完成之后是不可以人释放的(当App关闭之后,等系统自己回收). 也就是说,如果我们写得某个类符合了上述条件,那么我们也可以称这个类为单例. 在非ARC的工程中,我们需要针对alloc,retain,copy等会增加retaincount的参数加以控制,对release和autorelease等减少retailcount的操作增加控制,以确保单一实例,绝不释放. 在ARC的工厂中,由于,内

单例的几种写作方式和序列化

2015-09-02 16:02:07 推荐一篇大神的文章,好久之前就看过这篇文章,而且本文的思路就来自这篇文章~其实有了大牛的文章,本文可写可不写,但是为了给自己总结一下,就写了~ http://callmegod.iteye.com/blog/1474441 单例的作用想必大家都知道,也一直在用,但是到底怎样的单例是“比较”完美的单例模式呢?我也不知道,但是我一直在寻找答案~ 下面我简单总结一下单例吧,否则太乱了 Part 1:单例的几种实现方式 1. 恶汉式:指在类加载或者被初始化的时候,

单例的2种使用方式

一直都对设计模式,限于书本的理论知识,今天终于用到了众多设计模式中的一种,单例模式. 一共有2种使用方法.第一种是用它里面的函数,第二种是用它里面的变量. 上代码: 第一种,用里面的函数. 单例.h @interface NetManager : NSObject + (id)sharedManager; -(void)firstPrintf; -(void)secondPrintf; -(void)threeprintf; -(void)fourprintf; @end 单例.m static

iOS中创建单例的两种方式

刚刚开始做iOS开发的时候,不知道怎么创建单例,在网上搜的也大多数都不太全,所以总结了一下创建单例的两种方式 首先在.h文件中声明类方法 1 +(instancetype)sharedUtils; 然后在.m文件中实现它,实现的方法有两种 第一种,在创建一个对象时先判断在程序中有没有创建过这个对象 1 static PublicUtils *DefaultManager = nil; 2 3 +(instancetype)sharedUtils 4 { 5 if (!DefaultManager

IOS开发之单例设计模式

本文将从四个方面对IOS开发中的单例设计模式进行讲解: 一.什么是单例设计模式 二.我们为什么要用单例设计模式 三.单例设计模式的基本用法 四.自定义单例设计模式代码的封装 一.什么是单例设计模式 所谓单例,即是单个的实例化对象,保证一个类有且仅有一个实例.通常情况下,当我们对一个类实例化时(如:alloc.new等),并不能保证每次实例化的对象是唯一的实例.那么为了保证该类可在多次实例化的过程中保证内存地址不变,就需要引入单例设计模式. 二.我们为什么要用单例设计模式 1.Singleton

iOS开发之单例设计模式(完整正确版本)

单例的意思从字面上就可以略知一二,所谓单例就是确保在程序运行过程中只创建一个对象实例.可以用于需要被多次广泛或者说多次使用的资源中,比如我们常见的网络请求类.工具类以及其它管理类等.比如我iOS开发中常见的系统单例[UIApplication sharedApplication].[NSUserDefaults  standardUserDefaults]等.在iOS开发中,单例模式是非常有用的一种设计模式.如下图,是一个简单的例模式的UML类图. 一.使用单例模式的作用 它可以保证某个类在程序

iOS开发之单例头文件

// 帮助实现单例设计模式 // .h文件的实现 #define SingletonH(methodName) + (instancetype)shared##methodName; // .m文件的实现 #if __has_feature(objc_arc) // 是ARC #define SingletonM(methodName) static id _instace = nil; + (id)allocWithZone:(struct _NSZone *)zone { if (_inst

iOS开发-一些单例的类

UIApplication(应用程序实例) NSNotificationCenter(消息中心)  NSFileManager(文件管理)    NSUserDefaults(应用程序设置)     NSURLCache(请求缓存)   NSHTTPCookieStorage(应用程序cookies池)