Skip to content

Instantly share code, notes, and snippets.

@vinnybad
Last active August 29, 2015 14:15
Show Gist options
  • Save vinnybad/97f1c152af0a8bf27964 to your computer and use it in GitHub Desktop.
Save vinnybad/97f1c152af0a8bf27964 to your computer and use it in GitHub Desktop.
Thread-safe Singletons in Modern Objective-C
@implementation EVCSomeClass
+(EVCSomeClass *)shared {
static EVCSomeClass *shared = nil;
// dispatch_once_t is typedef'd to a long
static dispatch_once_t pred;
// this block is executed synchronously, and only one time ever for the given predicate
dispatch_once(&pred, ^{
shared = [EVCSomeClass new];
});
return shared;
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment