任何人都可以告诉我什么下面的类中的静态变量的范围是?类中的静态变量作用域?
@implementation SharedManager
static id myInstance = nil;
+(id)sharedInstance {
if(myInstance == nil) {
myInstance = [[self alloc] init];
}
return myInstance;
}
在测试我创建从类的实例,然后释放它,但注意到,在创建第二个实例,静态不是零(即指向先前发布的对象)对于测试我固定这通过覆盖 - (void)dealloc为这个类。
-(void)dealloc {
NSLog(@”_deal: %@”, [self class]);
[super release]
myInstance = nil
}
加里
谢谢大卫,是的,我明白这一点,但在这种情况下,单例只是模型数据,它是一个简单的MVC iPhone应用程序,我不会预见和线程发生。我只是想确定它是如何工作的,因此不需要dealloc,因为我没有看到它被释放 – fuzzygoat 2010-03-10 17:24:27
只是我的单身旅行中的一个快速记录,@synchronized([SharedManager class]){可能会更好,或者更好我被引导相信。 – fuzzygoat 2010-03-10 17:43:47