DOSingleton
是一个可自定义的Objective-C单例类,适用于Mac OSX和iOS。
将以下文件复制到您的项目中:
DOSingleton/DOSingleton.h
DOSingleton/DOSingleton.m
DOSingleton
也可在CocoaPods上找到
DOSingleton
是为子类化设计的,您应该将其子类化以创建您自己的单例
#import "DOSingleton.h"
@interface MySingleton : DOSingleton {
NSString *foo;
}
- (void)printFoo;
@end
当子类化DOSingleton
时,您应该将您的子类视为一个普通类,DOSingleton
将确保您的类只有一个实例。
如果您想创建自己的初始化器或重写-init
方法,则应使用isInitialized
属性检查单例是否已被初始化,以防止重复初始化。
#import "MySingleton.h"
@implementation MySingleton
- (id)init
{
if (!self.isInitialized) {
self = [super init];
if (self) {
// Initialize self.
}
}
return self;
}
- (void)printFoo
{
NSLog(@"%@", foo);
}
@end
然后您可以使用+sharedInstance
方法获取您单例的共享实例
[[MySingleton sharedInstance] printFoo];
DOSingleton使用ARC。
http://cocoadocs.org/docsets/DOSingleton
DOSingleton可在MIT许可证下使用。有关更多信息,请参阅LICENSE.md文件。
请自由使用并贡献!