With the first two articles here directly to the code, this method is not purely a hungry man style, compared to lazy code will be a little bit easier, but the official Apple does not recommend, to understand the good.
There is no multithreading at this time, creating a singleton object before using it, there is no thread at this time. So no lock is required.
Static id _instance = NIL;
+ (void) load{//load is automatically called after the class is loaded.
_instance = [[Self alloc] init];
}
Alloc new will come here, so it's more appropriate to rewrite it here.
+ (ID) allocwithzone: (struct _nszone *) zone
{
if (_instance = = nil) {//Prevent creation of multiple
_instance = [Super Allocwithzone:zone];
}
return _instance;
}
-(ID) Copywithzone: (Nszone *) zone
{
return _instance;
}
+ (Instancetype) Sharedmusictool
{
return _instance;
}
Single-case mode a hungry man ARC