我有一個關於在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