#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
本文地址:https://blog.csdn.net/u011224726/article/details/107982704
您可能感兴趣的文章:
如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!
网友评论