美文网首页
iOS中的两种单列模式实现

iOS中的两种单列模式实现

作者: 蘇哲炫爺 | 来源:发表于2015-12-28 12:00 被阅读456次

单例模式算是开发中比较常见的一种模式了。在iOS中,单例有两种实现方式(至少我目前只发现两种)。根据线程安全的实现来区分,一种是使用@synchronized,另一种是使用GCD的dispatch_once函数。

要实现单例,首先需要一个static的指向类本身的对象,其次需要一个初始化类函数。下面是两种实现的代码。

1、@synchronized

staticInstanceClass*instance;

+(InstanceClass*)defaultInstance{

@synchronized(self){

if(instance==nil){

instance=[[InstanceClassalloc]init];

}

}

returninstance;

}

2、GCD

staticInstanceClass*instance;

+(InstanceClass*)defaultInstance{

staticdispatch_once_tonceToken;

dispatch_once(&onceToken,^{

instance=[[InstanceClassalloc]init];

});

returninstance;

}

总的来说,两种实现效果相同,但第二种GCD的实现方式写起来比较简单。如果不习惯GCD的方式,可以使用第一种方式。

相关文章

  • iOS中的两种单列模式实现

    单例模式算是开发中比较常见的一种模式了。在iOS中,单例有两种实现方式(至少我目前只发现两种)。根据线程安全的实现...

  • 苹果支付的坑

    这篇主要是回顾一下之前做过的ios app内购,以及在实现过程中遇到的问题 IOS 内购支付有两种模式: 内置模式...

  • Python实现单列模式

    1. __ new __ 执行结果 1010{'a': 10} 2. 共享属性 执行结果 1010{'a': 10...

  • iOS web交互

    iOS极简模式实现Webview网页图片原生预览 IOS中 使用JavaScriptCore 实现OC与JS的交互...

  • 探索实现iOS异步回调更加优雅的解决方案

    前言 iOS的回调机制 在iOS开发中,回调机制的实现主要有两种: 利用代理设计模式,制定好一套回调协议,在需要进...

  • 你真的了解单例模式么

    应用最广的模式,单列模式 单列模式是用用最广的模式之一。 在应用这个模式的时候,单例对象的类必须在整个应用中只有一...

  • 用OC与swfit分别写单列

    单列在ios开发中是一种设计模式,在整个程序的生命周期内,单列类只会被初始化一次。可以用来传值等用途。使用一个简单...

  • 单列模式的多种实现方式

    懒汉模式 饿汉模式 双重同步锁单例模式 volatile+双重同步锁单例模式 静态的工厂方法 枚举

  • iOS 使用MVVM模式实现Cell的点击响应

    iOS 使用MVVM模式实现Cell的点击响应 iOS 使用MVVM模式实现Cell的点击响应

  • Euler中的图引擎(三)

    两种模式 对于图在内存中的存储,Euler提供了两种模式,分别为Fast和Compact。两种实现对于上层...

网友评论

      本文标题:iOS中的两种单列模式实现

      本文链接:https://www.haomeiwen.com/subject/kcwbhttx.html