/**DataTool.h工具类*/
#import <Foundation/Foundation.h>
@interface DataTool : NSObject
+ (instancetype)sharedDataTool;
@end
/**DataTool.m文件*/
#import "DataTool.h"
@implementation DataTool
// 用来保存唯一的单例对象
static id _instace;
+ (id)allocWithZone:(struct _NSZone *)zone
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instace = [super allocWithZone:zone];
});
return _instace;
}
+ (instancetype)sharedDataTool
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instace = [[self alloc] init];
});
return _instace;
}
- (id)copyWithZone:(NSZone *)zone
{
return _instace;
}
@end
/**控制器*/
- (void)viewDidLoad
{
[super viewDidLoad];
DataTool *tool1 = [DataTool sharedDataTool];
DataTool *tool2 = [DataTool sharedDataTool];
DataTool *tool3 = [[DataTool alloc] init];
DataTool *tool4 = [[DataTool alloc] init];
NSLog(@"%@ %@ %@ %@", tool1, tool2, tool3, tool4);
}
oc单例设计模式
最新推荐文章于 2022-06-14 18:10:44 发布