Singleton in Objective-C

Singleton: Instantiation of a class to one object

Features of Singleton:

  1. One class only can have only one instance;
  2. It must can create this instance automatically;
  3. This instance must be provided to other objects.

Benefits of Singleton:

All objects can only have one instance. In other words, all the instances, no matter how they were created, they have the same memory address. In practise, we want singleton class to manage our database read/write, file IO, to make sure the data integrity.

As we know, there are three Options to create an instance:

Option 1. using alloc and init
 Option 2. using static method. A way such as [UIApplication sharedApplication] to create a new instance.
 Option 3. copying from an existing object

For example, create a custom class named Item, and implement its singleton method as:

In the code:

  • Remember copyWithZone method must be override when you want to do the copy on object
  • allocWithZone is called when you create an instance by alloc and init
  • When you are using multi-threading, singleton instance should be avoided created multiple times.

Another way for you to create a singleton is using use GCD:


One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.