iOS 单例模式
2016-06-20 本文已影响0人
KillSimon
单例模式(singleton),顾名思义,单个实例。也就是说,整个App lifetime期间,该类只能有一个实例对象。
iOS中实现单例模式通常使用下面两种方法:
请容许我模仿系统UIApplication的实现来进行编码,我们假设可以这么做:)。
<pre>第一种:
+ (UIApplication)sharedApplication{
static UIApplication application = nil;
@synchronized(self){
if(application == nil){
application = [[UIApplication alloc]init];
}
}
return application;
}
</pre>
<pre>第二种:
+(UIApplication)sharedApplication{
static UIApplication application = nil;
static dispatch_once_t predicate;
//简单说一下下面这个函数,其功能是保证在app生命周期中,只执行一次参数中的block
dispatch_once(&predicate, ^{
application = [[UIApplication alloc]init];
});
return application;
}
</pre>
单例模式的应用场景:
通常用于资源管理类,比如网络请求,文件管理等等。