RosettaCodeData/Task/Singleton/Objective-C/singleton-2.m

39 lines
484 B
Objective-C

// SomeSingleton.m
@implementation SomeSingleton
+ (SomeSingleton *) sharedInstance
{
static SomeSingleton *sharedInstance = nil;
if (!sharedInstance) {
sharedInstance = [[SomeSingleton alloc] init];
}
return sharedInstance;
}
- (id)copyWithZone:(NSZone *)zone
{
return self;
}
- (id)retain
{
return self;
}
- (unsigned)retainCount
{
return UINT_MAX;
}
- (oneway void)release
{
// prevent release
}
- (id)autorelease
{
return self;
}
@end