Skip to content

Subclassable Objective-C singleton for Mac OSX and iOS

License

Notifications You must be signed in to change notification settings

jfmiguel/DOSingleton

 
 

Repository files navigation

DOSingleton

Version License Platform Build Status

DOSingleton is a subclassable Objective-C singleton for Mac OSX and iOS.

Ussage

Copy files

Copy the following files to your project:

  • DOSingleton/DOSingleton.h
  • DOSingleton/DOSingleton.m

DOSingleton is also available on CocoaPods

Subclass

DOSingleton is designed for subclassing, you should subclass it to make your own singleton:

#import "DOSingleton.h"

@interface MySingleton : DOSingleton {
	NSString *foo;
}

- (void)printFoo;	

@end

When subclassing DOSingleton you should think about your subclass as an ordinary class, DOSingleton makes sure that there is only one instance of your class.

If you want to make your own initializer or override -init method your should check whether your singleton has already been initialized with isInitialized property to prevent repeated initialization.

#import "MySingleton.h"

@implementation MySingleton

- (id)init
{
	if (!self.isInitialized) {
		self = [super init];

		if (self) {
			// Initialize self.
		}
	}
 
	return self;
}

- (void)printFoo
{
	NSLog(@"%@", foo);
}

@end

Then you can get the shared instance of your singleton with +sharedInstance methods:

[[MySingleton sharedInstance] printFoo];

Requirements

DOSingleton uses ARC.

Documentation

http://cocoadocs.org/docsets/DOSingleton

License

DOSingleton is available under the MIT license. See the LICENSE.md file for more info.

Feel free to use it and contribute!

About

Subclassable Objective-C singleton for Mac OSX and iOS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 94.1%
  • Ruby 5.9%