美文网首页
iOS中单例解释(中午小结之前的困惑)

iOS中单例解释(中午小结之前的困惑)

作者: 小人不才 | 来源:发表于2017-09-07 11:26 被阅读12次

我们在进行程序开发的过程中经常会用到单例:这里指得就是我们ARC中常见的单例:

/**

*  获取当前类单例对象

*/

static MPConfig *object = nil;

+ (MPConfig *)shared {

static dispatch_once_t predicate = 0;

dispatch_once(&predicate, ^{ object = [[self class] new]; });

return object;

}

需要解释的地方:

1该方法的作用就是执行且在整个程序的声明周期中,仅执行一次某一个block对象。简直就是为单例而生的嘛。而且,有些我们需要在程序开头初始化的动作,如果为了保证其,仅执行一次,也可以放到这个dispatch_once来执行。

2然后我们看到它需要一个断言来确定这个代码块是否执行,这个断言的指针一定要保存起来。对于在应用中创建一个初始化一个全局的数据对象(单例模式),这个函数很有用。如果同时在多线程中调用它,这个函数将等待同步等待,直至该block调用结束。

3这个断言的指针必须要全局化的保存,或者放在静态区内。使用存放在自动分配区域或者动态区域的断言,dispatch_once执行的结果是不可预知的。

总结:1.这个方法可以在创建单例或者某些初始化动作时使用,以保证其唯一性。2.该方法是线程安全的,所以请放心大胆的在子线程中使用。(前提是你的dispatch_once_t *predicate对象必须是全局或者静态对象。这一点很重要,如果不能保证这一点,也就不能保证该方法只会被执行一次。)

相关文章

  • iOS中单例解释(中午小结之前的困惑)

    我们在进行程序开发的过程中经常会用到单例:这里指得就是我们ARC中常见的单例: /** * 获取当前类单例对象 *...

  • iOS 单例模式

    关于单例模式的详解,看完这几篇,就完全了然了。iOS 单例模式iOS中的单例模式iOS单例的写法

  • 单例

    iOS单例模式iOS之单例模式初探iOS单例详解

  • 单例模式 Singleton Pattern

    单例模式-菜鸟教程 iOS中的设计模式——单例(Singleton) iOS-单例模式写一次就够了 如何正确地写出...

  • iOS 中的强单例和弱单例

    单例是什么以及作用就不单独解释了 强单例 iOS 中常见的单例模式有两种方式: 这也是到处都能查到的调用GCD 或...

  • iOS开发 单例使用问题

    iOS开发 单例使用问题 iOS开发 单例使用问题

  • iOS开发 单例使用问题

    iOS开发 单例使用问题 iOS开发 单例使用问题

  • Swift 单例的实现与解析

    单例 Singleton 是设计模式中非常重要的一种,在 iOS 中也非常常见。在之前的面试过程中也被问到过单例相...

  • iOS单例模式

    单例模式是在iOS开发中常用的开发模式之一,使用单例模式是为了保证在整个程序中,所定义的属性值是唯一的 之前对于单...

  • iOS单例模式容错处理

    ios 单例模式容错处理 1、单例模式的使用和问题解决 在ios开发的过程中,使用单例模式的场景非常多。系统也有很...

网友评论

      本文标题:iOS中单例解释(中午小结之前的困惑)

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