#import <Foundation/Foundation.h>
@interface WKPerson : NSObject
+ (instancetype)sharedInstance;
@end
#import "WKPerson.h"
@interface WKPerson () <NSCopying>
@end
@implementation WKPerson
static id _instance;
+ (instancetype)allocWithZone:(struct _NSZone *)zone {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instance = [super allocWithZone:zone];
});
return _instance;
}
+ (instancetype)sharedInstance {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instance = [[self alloc]init];
});
return _instance;
}
- (id)copyWithZone:(NSZone *)zone {
return _instance;
}
@end