Skip to content

Instantly share code, notes, and snippets.

@patelrohan
Last active December 10, 2015 18:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save patelrohan/4473361 to your computer and use it in GitHub Desktop.
Save patelrohan/4473361 to your computer and use it in GitHub Desktop.
Singleton.m
#import "SingletonClass.h"
#import "ViewController.h"
@implementation SingletonClass
@synthesize locationManager;
@synthesize startLocation,stopLocation;
@synthesize testStr;
//static SingletonClass *sharedManager = nil;
#pragma mark Singleton Methods
/*+ (SingletonClass *)sharedManager {
static SingletonClass *sharedManager = nil;
if (sharedManager == nil) {
sharedManager = [[super allocWithZone:NULL] init];
}
return sharedManager;
}*/
+(SingletonClass *)sharedManager
{
static SingletonClass *sharedManager = nil;
if (sharedManager !=nil)
{
return sharedManager;
}
static dispatch_once_t pred;
dispatch_once(&pred, ^{
sharedManager = [SingletonClass alloc];
sharedManager=[sharedManager init];
});
return sharedManager;
}
- (id)init
{
self = [super init];
if (self)
{
testStr = [[NSString alloc] initWithString:@"String from Singleton Class, Hello!"];
}
return self;
}
-(void)dealloc
{
// I'm never called!
[locationManager release];
[stopLocation release];
[startLocation release];
[testStr release];
[super dealloc];
}
+ (id)allocWithZone:(NSZone*)zone {
return [[self sharedManager] retain];
}
- (id)copyWithZone:(NSZone *)zone {
return self;
}
- (id)retain {
return self;
}
- (NSUInteger)retainCount {
return NSUIntegerMax;
}
- (oneway void)release {
}
- (id)autorelease {
return self;
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment