【iOS开发】利用dispatch_once创建单例

原创 2016年05月30日 14:05:57

dispatch_once创建单例

在开发中我们会用到NSNotificationCenter、NSFileManager等,获取他们的实例通过[NSNotificationCenter defaultCenter]和[NSFileManager defaultManager]来获取,其实这就是单例。
我们先看下面函数:

void dispatch_once( dispatch_once_t *predicate, dispatch_block_t block);

其中第一个参数predicate,该参数是检查后面第二个参数所代表的代码块是否被调用的谓词,第二个参数则是在整个应用程序中只会被调用一次的代码块。dispach_once函数中的代码块只会被执行一次,而且还是线程安全的。
接下来自己创建一个单例 IHFOffLineDownManager.h 类,为这个类实现单例,代码如下:
+ (instancetype)sharedInstance
{
    static IHFOffLineDownManager *manager = nil;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        manager = [[IHFOffLineDownManager alloc] init];

    });

    return manager;
}

获取单例方式:

IHFOffLineDownManager *manager = [IHFOffLineDownManager sharedInstance];

以上就是完整创建单例的方法。
版权声明:转载请注明出处。

IOS开发之dispatch_once创建单例

单例是一种类,该类只能在第一次用的时候实例化一个对象,后期直接调用此对象(有点共享的意思)。 在Foundation框架中比如NSFileManger和NSNotificationCenter,分别...

IOS开发之dispatch_once创建单例

单例是一种类,该类只能在第一次用的时候实例化一个对象,后期直接调用此对象(有点共享的意思)。 在Foundation框架中比如NSFileManger和NSNotificationCenter,分别...
  • mad2man
  • mad2man
  • 2013年09月17日 18:09
  • 827

IOS开发之dispatch_once创建单例

单例是一种类,该类只能在第一次用的时候实例化一个对象,后期直接调用此对象(有点共享的意思)。 在Foundation框架中比如NSFileManger和NSNotificationCenter,分别...

【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例

GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例

<iOS>利用dispatch_once创建单例

(一)dispatch_once创建单例 在软件工程中,单例是一种用于实现单例的数学概念,即将类的实例化限制成仅一个对象的设计模式。或者理解为:单例是一种类,该类只能实例化一个对象。 尽管这是单例的实...
  • zztBee
  • zztBee
  • 2015年10月26日 11:07
  • 266

IOS 运用dispatch_once 创建单例 MARK

有些变量只需要初始化一次(如从文件中读取配置参数,读取设备型号等等),可以使用dispatch_once来进行读取优化,保证只调用API一次,以后就只要直接访问变量即可 范例如下: ...

iOS 创建单例的方法 dispatch_once

单例的运用场景是:一种类,该类只能实例化一个对象。 iOS 创建单例的方法有:dispatch_once 举例如下 假如有个全局的状态类,该类的接口部分如下: @interface Global...

kidd风的IOS日志之利用dispatch_once创建单例

利用dispatch_once创建单例 无论是爱还是恨,你都需要单例。实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication. 什么是单例呢...
  • hmh007
  • hmh007
  • 2016年02月25日 09:04
  • 184

iOS 使用 dispatch_once 创建线程安全的单例

iOS 使用 dispatch_once 创建线程安全的单例
  • sleks
  • sleks
  • 2014年04月16日 21:49
  • 3218

利用dispatch_once创建单例

无论是爱还是恨,你都需要单例。实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication. 什么是单例呢?Wikipedia是如此定义的: 在软件工程中,单...
  • think12
  • think12
  • 2013年04月12日 16:51
  • 1649
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【iOS开发】利用dispatch_once创建单例
举报原因:
原因补充:

(最多只允许输入30个字)