我已经阅读了很多关于如何在 Objective-C 中实现单例的线程和博客文章,其中一些可能有点被弃用(2010 年或更早),似乎人们对这个问题有不同的看法。 .. Apple 是否有关于实现单例的文档?我找不到它。如果是这样,有人可以告诉我在哪里吗?
我需要一个具有一些公共和私有变量的类的单例。目前,这是我对此类的实现:
@interface MySingleton ()
@property (strong, nonatomic) NSString *state;
@end
@implementation MySingleton
@synthesize state = _state;
@synthesize count = _count;
static MySingleton *sharedObject = nil;
+ (MySingleton *)sharedInstance
{
static dispatch_once_t _singletonPredicate;
dispatch_once(&_singletonPredicate, ^{
sharedObject = [[super allocWithZone:nil] init];
});
return sharedObject;
}
+ (id)allocWithZone:(NSZone *)zone
{
return [self sharedInstance];
}
这应该是推荐的方式吗?我应该如何初始化实例变量,公共的和私有的?
关于单例,我想澄清的另一个问题是:这会产生内存泄漏吗?iOS 中真的推荐使用单例吗?
谢谢