iOSAppDev iOSAppDev - 1 year ago 100
Objective-C Question

How to create singleton class in objective C

How can I create a singleton class in Objective C?

Answer Source

Okay appDev, you will probably find quite a few different techniques to do this on the web. However, for iOS app development, I think the most convenient way is to do the following:

  • Write your method(s) for getting the singleton object. (Recommendation: use dispatch_once thread and GCD for this).

  • Wrap your method(s) in a macro and add it to your $Project$-Prefix.pch file.

  • Call the one line macro whenever you need singleton object for a class.



#define SINGLETON_FOR_CLASS(classname)\
+ (id) shared##classname {\
    static dispatch_once_t pred = 0;\
    static id _sharedObject = nil;\
    dispatch_once(&pred, ^{\
        _sharedObject = [[self alloc] init];\
    return _sharedObject;\


#import "CommonMacros.h"