单例基础

1.单例使用懒加载方式在第一次实例时创建,如[NSUserDefaults standardUserDefaults],[UIApplication sharedApplication],[UIScreen mainScreen],[NSFileManager defaultManager]

2.系统的单例类有:UIApplication,NSNotificationCenter,NSFileManager,NSUserDefaults,NSURLCache,NSHTTPCookieStorage等

3.代码示例

#import"WLSingleton.h"

@implementationWLSingleton

static   WLSingleton *instance = nil;

+(id)allocWithZone:(struct_NSZone*)zone{

      static   dispatch_once_t   onceToken;

      dispatch_once(&onceToken, ^{

                 instance= [super   allocWithZone:zone];

       });

      return  instance;

}

+(instancetype)sharedSingleton{

            static   dispatch_once_t   onceToken;

            dispatch_once(&onceToken, ^{

                     instance= [[WLSingletonalloc]init];

             });

            return   instance;

}

- (id)copyWithZone:(NSZone*)zone{

      return   instance;

}

@end

你可能感兴趣的:(单例基础)