1.单例命名以shareXXX开头。
如:UIApplication *app = [UIApplicationsharedApplication];
2.外界不能调用alloc方法,一屌用就抛异常。
+ (instancetype) alloc
{
if (_instance)
{
//标示已分配了内存
NSException *exp = [NSExceptionexceptionWithName:@"NSInternalInconsistencyException"reason:@"There can only be one Person instance."userInfo:nil];
//抛异常
[exp raise];
}
return [superalloc];
}
3.提供一个方法给外界,用来获取单例。
+ (instancetype) sharePerson
{
return_instance;
}
4.内部创建单例,ios程序启动的时候就创建单例
// 加载类的时候
+ (void) load
{
NSLog(@"%s", __func__);
_instance = [[selfalloc] init];
}
5.测试
[[Person alloc] init]; // 抛异常
[[Person sharePerson]; // 正常