ios完整单例

Singleton(单例模式),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。
代码如下:
static ClassA *classA = nil;//静态的该类的实例
+ (ClassA *)sharedManager

@synchronized(self) {
if (!classA) {
classA = [[super allocWithZone:NULL]init];
}
return classA;
}

+ (id)allocWithZone:(NSZone *)zone {
return [[self sharedManager] retain];
}
- (id)copyWithZone:(NSZone *)zone {
return self;
}
- (id)retain {
return self;
}
- (NSUIntger)retainCount {
return NSUIntgerMax;
}
- (oneway void)release {
}
- (id)autorelease {
return self;
}
-(void)dealloc{
}




王珂

//将first做成单例
static FirstViewController *ft=nil;
+ (FirstViewController *)singleton
{
    @synchronized(self){//线程安全
        if (!ft){
            ft=[[super allocWithZone:NULL]init];
        }
    }
    return ft;
}
+ (id)allocWithZone:(NSZone *)zone//重新写alloc是从写的父类的alloc
{
    return [[self singleton]retain];  //返回单例  这里self在+方法中就是类型不是对象
}
- (id)copyWithZone:(NSZone *)zone//重新copy
{
    return self;
}
- (id)retain
{
    return self;
}
- (id)autorelease
{
    return self;
}
- (oneway void)release
{
    //不做处理
}
- (void)dealloc
{
    //不作处理
}
- (NSUInteger)retainCount
{
    return NSUIntegerMax;
}

猜你喜欢

转载自zhangmingwei.iteye.com/blog/1743831