iOS开发之单例模式的写法

单例模式是iOS开发中最常用的设计模式,单例需要能达到的目的是:

   1. 封装一个共享的资源;

   2. 提供一个固定的实例创建方法;

   3. 提供一个标准的实例访问接口。

iOS中的单例模式有两种写法:

   1、单例的常用写法:

    #import "ServiceManager.h"
    static ServiceManager *defaultManager;
    @implementation ServiceManager

    +(ServiceManager *)defaultManager{
    if(!defaultManager)
    defaultManager=[[self allocWithZone:NULL] init];
    return defaultManager;
   }
   @end

   2、用GCD创建单例类

#import "ServiceManager.h"

@implementation ServiceManager
+(ServiceManager *)sharedManager{
static dispatch_once_t predicate;
static ServiceManager * sharedManager;
dispatch_once(&predicate, ^{
sharedManager=[[ServiceManager alloc] init];
});
return sharedManager;
}
@end

其中dispatch_once函数只执行一次。










你可能感兴趣的:(单例,ios,gcd)