If you can target iOS 4.0 or above
Using GCD, is it the best way to create singleton in Objective C (thread safe)?
static dispatch_once_t once;
static id sharedInstance;
sharedInstance = [[self alloc] init];
This is a perfectly acceptable and thread-safe way to create an instance of your class. It may not technically be a "singleton" (in that there can only ever be 1 of these objects), but as long as you only use the
[Foo sharedFoo] method to access the object, this is good enough.