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