iOS 创建单例的两种方法

来源:互联网 发布:学java需要多长时间 编辑:程序博客网 时间:2024/05/16 16:20

第一种方法

static  AccountManager  *DefultManager = nil;

+ (AccountManager *)defultManager{

   if (!DefultManager)DefultManager = [[self allocWithZone: NULL] init];

   return DefultManager;

}


iOS 4之后的另外一种方法

+ (AccountManager *)shareManager

{

      static  AccountManager   *shareAccountManagerInstance = nil;

      static  dispach_once_t predicate;

      dispatch_once(&predicate, ^{

      shareAccountManagerInstance = [[self alloc]  init];

      });

      return  shareAccountManagerInstance;

}

该方法有以下几种特性:

1. 线程安全

2. 满足静态分析器的要求

3. 兼容ARC

0 0
原创粉丝点击