美文网首页iOS开发
iOS设计模式之单例(Singleton)模式

iOS设计模式之单例(Singleton)模式

作者: 52xpz | 来源:发表于2017-01-05 10:45 被阅读32次

1、使用场景

单例模式一般用在需要全局唯一对象并且各个模块都要调用的场景,比如项目中的loading图、下载库、应用程序配置。

2、实现方法

1)线程不安全的实现方法

+ (CityLoadManager*)getInstance

{

static CityLoadManager* loadManager = nil;

if(!loadManager)

{

loadManager = [[CityLoadManager alloc] init];

}

return loadManager;

}

上述实现的逻辑漏洞是当多个线程同时调用CityLoadManager的getInstance方法时造成线程同步问题

2)解决1)中的问题,线程安全的实现方法如下

+ (CityLoadManager*)getInstance

{

static CityLoadManager* loadManager = nil;

static dispatch_once_t onceToken;

dispatch_once(&onceToken, ^{

loadManager = [[CityLoadManager alloc] init];

});

return loadManager;

}

相关文章

网友评论

    本文标题:iOS设计模式之单例(Singleton)模式

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