/ Published in: Objective C
Credit: http://iphone.galloway.me.uk/iphone-sdktutorials/singleton-classes/
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
//MyManager.h #import <foundation/Foundation.h> NSString *someProperty; } + (id)sharedManager; @end //MyManager.m #import "MyManager.h" static MyManager *sharedMyManager = nil; @implementation MyManager @synthesize someProperty; #pragma mark Singleton Methods + (id)sharedManager { @synchronized(self) { if(sharedMyManager == nil) sharedMyManager = [[super allocWithZone:NULL] init]; } return sharedMyManager; } + (id)allocWithZone:(NSZone *)zone { return [[self sharedManager] retain]; } - (id)copyWithZone:(NSZone *)zone { return self; } - (id)retain { return self; } - (unsigned)retainCount { return UINT_MAX; //denotes an object that cannot be released } - (void)release { // never release } - (id)autorelease { return self; } - (id)init { if (self = [super init]) { } return self; } - (void)dealloc { // Should never be called, but just here for clarity really. [someProperty release]; [super dealloc]; } @end