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];
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章