在Objective C中实现单例模式的基本步骤如下:
继承NSObject类,通过类方法+(instancetype)sharedInstance来获取单例对象。
重写allocWithZone和copyWithZone方法,确保单例对象只被创建一次。
在sharedInstance方法中实现懒加载,确保单例对象在第一次被访问时才会被创建。
以下是示例代码:
@implementation MyManager static MyManager *sharedInstance = nil;
- (instancetype)sharedInstance { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ sharedInstance = [[super allocWithZone:NULL] init]; }); return sharedInstance;
}
- (instancetype)allocWithZone:(struct _NSZone *)zone { return [self sharedInstance];
}
- (id)copyWithZone:(NSZone *)zone { return self;
} @end
通过这个类方法可以获取到单例对象:
MyManager *manager = [MyManager sharedInstance];
注意,单例模式可以使某个类只被创建一次,但有时候也可能引起一些问题。使用时需要慎重考虑。