用户登录
用户注册

分享至

单例

  • 作者: 战无不胜oooo
  • 来源: 51数据库
  • 2021-07-28

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface ImagePlay : NSObject<NSCopying>
+ (instancetype)sharedClass;
-(void)test;
@end

NS_ASSUME_NONNULL_END

?

?

#import "ImagePlay.h"
static ImagePlay *defaultImagePly = nil;
@implementation ImagePlay


+ (instancetype)sharedClass {

//第一步:静态实例,并初始化

? //??? static CDSharedClass *defaultShared = nil;
??? //第二部:只分配一次内存
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
??? defaultImagePly = [[[self class]alloc]init];
});

return defaultImagePly;
}

//第三部:重载allocWithZone方法
+ (instancetype)allocWithZone:(struct _NSZone *)zone {

static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
??? defaultImagePly = [super allocWithZone:zone];
});

return defaultImagePly;
}

//第四部:重写copyWithZone
- (id)copyWithZone:(NSZone *)zone {
return defaultImagePly;
}

-(void)test{
??? NSLog(@"666");
}
@end

软件
前端设计
程序设计
Java相关