Objective-C Singleton

Singleton pattern implementation in Objective-C

MySingleton.h

#import <Foundation/Foundation.h>

@interface MySingleton : NSObject 

+ (MySingleton*) instance;

@end

MySingleton.m

#import "MySingleton.h"

@implementation MySingleton

static MySingleton *myInstance;
+ (MySingleton*) instance {
    if (myInstance == nill) {
        myInstance = [[super allocWithZone:NULL] init];
    }
    return myInstance;
}

+ (id) allocWithZone:(NSZone*)zone {
    return [[self instance] retain];
}

- (id) copyWithZone:(NSZone*)zone {
    return self;
}

- (id) retain {
    return self;
}

- (NSUInteger) retainCount {
    return NSUIntegerMax;
}

- (oneway void) release {
}

- (id) autorelease {
    return self;
}

@end
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s