苹果单例实现特点:
1.外界不能调用alloc方法,如果调用就抛异常。
2.提供一个方法给外界调用,生成对象。
3.内部创建一次单例,在程序启动的时候创建。(利用load方法)
代码引用:
#import "Singleton.h"
@implementation Singleton
// 静态变量
static Singleton *_instance = nil;
// 启动的时候创建对象(这个方法会在程序每次启动的时候,把类加载到内存中)
+(void)load
{
_instance = [[self alloc]init];
}
+(instancetype)shareSingleton
{
return _instance;
}
// 重写alloc方法
+(instancetype)alloc
{
// 判断_instance是否已经存在
if (_instance) {
// 如果存在抛出异常
// 创建异常
NSException *singException = [NSException exceptionWithName:@"NSInternalInconsistencyException" reason:@"There can only be one Singleton instance" userInfo:nil];
// 抛出异常
[singException raise];
}
return [super alloc];
}
@end
网友评论