Objective-C - iOS - Singleton explanation -
this code of singleton
+ (aldata *)sharedinstance { static aldata *_shared; if(!_shared) { static dispatch_once_t oncepredicate; dispatch_once(&oncepredicate, ^ { _shared = [[super allocwithzone:nil] init]; }); } return _shared; } + (id)allocwithzone:(nszone *)zone { return [self sharedinstance]; } - (id)copywithzone:(nszone *)zone { return self; } #if (!__has_feature(objc_arc)) - (id)retain { return self; } - (unsigned)retaincount { return uint_max; } - (void)release {} - (id)autorelease { return self; } #endif now, singletons have seen being called in way :
[[singleton sharedinstance] instancemethod]; but want call in way :
[singleton classmethod]; to when create method :
+ (bool)decide:(bool)var { [self sharedinstance]; if (var) return no; else return yes; } instead, if want proceed in first way have declare method in way :
- (bool)decide:(bool)var { if (var) return no; else return yes; } and when call have write :
[[singleton sharedinstance] decide:yes]; my question : difference between these 2 approaches? both in terms of performance, both @ level of design pattern. know because think aesthetically better method second, 1 doesn't call sharedinstance.
i hope question clear
the main difference between singleton , class bunch of class methods singleton can preserve kind of state. example, array of data or boolean flags. calling sharedinstance, access 1 , instance of class, being kept alive(and state of data preserved there). can add class methods singleton class , work, escape singleton pattern.
Comments
Post a Comment