【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 创建单例 MARK

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

iOS 创建单例的方法 dispatch_once

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

利用dispatch_once创建单例

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://bj007.blog.51cto.com/1701577/649413   ...

利用dispatch_once创建单例

无论是爱还是恨,你都需要单例。实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication. 什么是单例呢?Wikipedia是如此定义的: 在软件工...

利用dispatch_once创建单例

利用dispatch_once创建单例  无论是爱还是恨,你都需要单例。实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication. 什么是...

利用dispatch_once创建单例

无论是爱还是恨,你都需要单例。实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication. 什么是单例呢?Wikipedia是如此定义的: 在软件工...

利用dispatch_once创建单例

无论是爱还是恨,你都需要单例。实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication. 什么是单例呢?Wikipedia是如此定义的: 在软件工...

利用dispatch_once创建单例

无论是爱还是恨,你都需要单例。实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication. 什么是单例呢?Wikipedia是如此定义的: 在软件工程中,单例是...

利用dispatch_once创建单例

无论是爱还是恨,你都需要单例。实际上每个iOS或Mac OS应用都至少会有UIApplication或NSApplication. 什么是单例呢?Wikipedia是如此定义的: 在软件工...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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