我有一个关于在Objective-C中实现singleton类的安全方法的问题。 我的背景主要是在网络开发(PHP)中,但我知道在Obj-C中有很大的不同。比如我有一个我想成为单身这个自定义MyClass类:Singleton类中的Init方法(Objective-C)
static MyClass *sharedInstance = nil;
@interface MyClass:NSObject
NSMutableArray *someArray;
@end
@implementation MyClass:NSObject
-(id)init
{
if(sharedInstance) {
self = sharedInstance;
} else if((self=[super init])) {
sharedInstance = self;
someArray = [[NSMutableArray alloc]initWithCapacity:10];
}
return self;
}
+(MyClass *)sharedObject
{
if(!sharedInstance) {
sharedInstance = [[MyClass alloc]init];
}
return sharedInstance;
}
@end
- 这是确定这种实现?
- 既然在Obj-C中,我不能让构造函数是私有的(据我所知,也许我错了),这可以这样创建init方法吗?
好的,非常感谢您的回复。的确,我正在考虑如何“禁用”alloc/init。 – Bogdan 2015-02-07 01:42:32