The singleton pattern is widely used in iOS to have a global, static class.

The most famous is [NSUserDefaults standardUserDefaults].

Over the years, the template for creating a singleton/SharedInstance has also changed. This is due to the introduction of new technologies in Apple's SDK, particularly ARC and GDC.

The implementation has simplified to:

+ (id)sharedInstance
static dispatch_once_t pred = 0;
__strong static id _sharedObject = nil;
dispatch_once(&pred, ^{
_sharedObject = [[self alloc] init]; // or some other init method
return _sharedObject;

Nice piece of code added to my Xcode snippet.




Back to Home