objc的单例问题
最近我读别人的代码,看到他写的单例模式修改了retain, release:
- (id)retain{ return self; }- (unsigned)retainCount{ return UINT_MAX; //denotes an object that cannot be released}- (oneway void)release{ //do nothing}- (id)autorelease{ return self; }- (void)dealloc { [_sharedManager release]; [super dealloc];}
+(AppropriateSingleton *) sharedAppropriateSingleton { @synchronized (self) { if (instance_ == nil) {// instance_ = [[super allocWithZone:NULL] init]; // OR instance_ = [NSAllocateObject([self class], 0, NULL) init]; } } return instance_;}+(id) allocWithZone:(NSZone *)zone { @synchronized (self) { return [[self sharedAppropriateSingleton] retain]; }}-(id) copyWithZone:(NSZone *) zone { return self;}