static BlockBackground *_sharedInstance = nil;+ (BlockBackground*)sharedInstance{ if (_sharedInstance != nil) { return _sharedInstance; } @synchronized(self) { if (_sharedInstance == nil) { _sharedInstance = [[self alloc] init]; } } return _sharedInstance;}+ (id)allocWithZone:(NSZone*)zone{ @synchronized(self) { if (_sharedInstance == nil) { _sharedInstance = [super allocWithZone:zone]; return _sharedInstance; } } NSAssert(NO, @ "[BlockBackground alloc] explicitly called on singleton class."); return nil;}- (id)copyWithZone:(NSZone*)zone{ return self;}- (id)retain{ return self;}- (unsigned)retainCount{ return UINT_MAX;}- (oneway void)release{}- (id)autorelease{ return self;}