ios单例模式的几种写法

来源:互联网 发布:财务会计软件目的 编辑:程序博客网 时间:2024/04/30 11:44


单例模式是开发中最常用的写法之一,iOS的单例模式有两种官方写法,如下:

1.不使用GCD

#import "ServiceManager.h"static ServiceManager *defaultManager;@implementation ServiceManager+(ServiceManager *)defaultManager{    if(!defaultManager)        defaultManager=[[self allocWithZone:NULL] init];    return  defaultManager;}@end


2.使用GCD

<pre class="objc" name="code">#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这个函数, 它可以保证整个应用程序生命周期中某段代码只被执行一次!


0 0