单例模式的使用

来源:互联网 发布:索尼系统更新挂起网络 编辑:程序博客网 时间:2024/04/28 05:50

重写的八个方法:两个类方法+六个实例方法


static HeadMaster *headmaster;
+(id)getInstance
{
    if (!headmaster) {
        headmaster = [[HeadMaster alloc] init];
    }
    return headmaster;
}


+(id)allocWithZone:(NSZone *)zone
{
    if (!headmaster) {
        headmaster = [super allocWithZone:zone];
    }
    return headmaster;
}


-(id)copyWithZone:(NSZone *)zone
{
    return self;
}


-(id)mutableCopyWithZone:(NSZone *)zone
{
    return self;
}


-(id)retain
{
    return self;
}


-(NSUInteger)retainCount
{
    return NSIntegerMax;
}
-(oneway void)release
{}


-(id)autorelease
{
    return  self;
}