当前位置: 移动技术网 > IT编程>数据库>MSSQL > 单例

单例

2020年08月14日  | 移动技术网IT编程  | 我要评论
#import <Foundation/Foundation.h>NS_ASSUME_NONNULL_BEGIN@interface ImagePlay : NSObject<NSCopying>+ (instancetype)sharedClass;-(void)test;@endNS_ASSUME_NONNULL_END#import "ImagePlay.h"static ImagePlay *defaultImagePly = nil;@..

#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

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网