@interface ShareObject : NSObject <NSCopying>
@end
@implementation ShareObject
+ (instancetype) shareInstance {
static ShareObject *share = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
share = [[super allocWithZone:NULL] init];
});
return share;
}
+ (instancetype)allocWithZone:(struct _NSZone *)zone {
return [self shareInstance];
}
- (id)copyWithZone:(NSZone *)zone {
return self;
}