MBSingleton Protocol Reference

Conforms to NSObject
Declared in MBSingleton.h

Overview

Adopted by classes that act as singletons.

Singletons will only ever return a single object pointer over the running lifetime of an application.

Because the singleton is guaranteed not to change, it is safe for callers to store long-term references to it. This way, the overhead incurred by unnecessary repeat calls to the singleton’s instance method can be avoided.

If a class implementation might return more than one distinct object pointer over the lifetime of an application, it should adopt the MBInstanceVendor protocol instead of MBSingleton.

Automatic singleton implementation

Mockingbird provides the MBImplementSingleton() macro for classes that do not wish to provide their own implementation of the instance method.

MBImplementSingleton() expands to a thread-safe, lazily-instantiated implementation of the instance method.

To use, place the macro between the @implementation@end keywords of the singleton class’s implementation.

Note: Singleton implementations should strive to be thread-safe. If a class adopting this protocol is not thread-safe, that fact should be noted prominently in the class’s documentation.

+ instance required method

Retreives the singleton instance of the receiving class.

+ (instancetype)instance

Return Value

The singleton instance. This value should never change during the running lifetime of the application.

Declared In

MBSingleton.h