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