#import <Foundation/Foundation.h>
@interface Person : NSObject
+(instancetype)sharePerson;
@end
#import "Person.h"
@implementation Person
static Person *_instance = nil;
+(void)load{
_instance = [[self alloc] init];// 已进入就调用
}
+(instancetype)sharePerson{
return _instance;
}
+(instancetype)alloc{
if (_instance) { // 禁止调用alloc
NSException *exception = [NSException exceptionWithName:NSInternalInconsistencyException reason:@"There can only be on Person instance" userInfo:@{}];
[exception raise];// 抛出异常
}
return [super alloc];
}
@end
/*单例子*/
+ (instancetype)shareInstance{
static Person *sharedInstance = nil;
static dispatch_once_t prdictate;
dispatch_once(&prdictate, ^{
sharedInstance = [[Person alloc] init];
});
return sharedInstance;
}