Singleton in Objective-C
Singleton: Instantiation of a class to one object
Features of Singleton:
- One class only can have only one instance;
- It must can create this instance automatically;
- 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
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:
copyWithZonemethod must be override when you want to do the copy on object
allocWithZoneis called when you create an instance by
- 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: