iOS单例的最终写法

+(instancetype)shareSinglerton{
    static ZQSingleton *sharedSingleton;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedSingleton = [[ZQSingleton alloc]init];
    });
    return sharedSingleton;
}

+(instancetype)alloc{
    NSAssert(0, @"这是一个单例对象,请使用+(ZYHPayManager *)sharedMamager方法");
    return nil;
}
+(instancetype)allocWithZone:(struct _NSZone *)zone{
    return [self alloc];
}
-(id)copy{
    NSLog(@"这是一个单例对象,copy将不起任何作用");
    return self;
}
+(instancetype)new{
    return  [self alloc];
}

你可能感兴趣的:(单例)