有了前两篇的文章这里直接给出代码,这种方法不是纯粹的饿汉式,比较懒汉式代码会容易一点点,但是苹果官方不推荐,了解一下就好.
此时没有多线程的困扰,使用之前就创建一个单例对象,此时还没有线程.所以不需要加锁.
static id _instance = nil;
+(void)load{//该类加载之后load就会被自动调用,
_instance = [[self alloc] init];
}
alloc new 都会来到这里,所以在这里重写更合适.
+ (id)allocWithZone:(struct _NSZone *)zone
{
if (_instance == nil) { // 防止创建多次
_instance = [super allocWithZone:zone];
}
return _instance;
}
- (id)copyWithZone:(NSZone *)zone
{
return _instance;
}
+ (instancetype)sharedMusicTool
{
return _instance;
}
时间: 2024-12-27 22:53:12