您的位置:首页 > 移动开发 > IOS开发

iOS中创建单例的两种方式

2016-05-24 19:08 906 查看
刚刚开始做iOS开发的时候,不知道怎么创建单例,在网上搜的也大多数都不太全,所以总结了一下创建单例的两种方式

首先在.h文件中声明类方法

+(instancetype)sharedUtils;


然后在.m文件中实现它,实现的方法有两种

第一种,在创建一个对象时先判断在程序中有没有创建过这个对象

static PublicUtils *DefaultManager = nil;

+(instancetype)sharedUtils
{
if (!DefaultManager)
DefaultManager = [[self allocWithZone:NULL] init];

return DefaultManager;
}


第二种,直接利用系统提供的多线程技术dispatch_once

+(instancetype)sharedUtils
{
static PublicUtils* _sharedUtils = nil;
static dispatch_once_t _once;
dispatch_once(&_once, ^{
_sharedUtils = [[self alloc] init];
});

return _sharedUtils;
}


dispatch_once(&_once, ^{
});
这个多线程的作用看名字估计就猜的差不多了:对于某个任务执行且只执行一次。

欢迎大家提出建议和意见,大家一起学习,一起进步。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: