码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发之单例模式下的初始化方法

时间:2015-07-20 01:10:25      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

iOS开发之单例模式下的初始化方法

一般的单例我们会这么写

+(instancetype)sharedXXXManager{
    static XXXManager *sharedXXXManagerInstance = nil;
    static dispatch_once_t predicate;
    dispatch_once(&predicate,^{
        sharedXXXManagerInstance = [[XXXManager alloc] initPrivate];
    });
    
    return sharedXXXInstance;
}

在这里一般我们会用一个私有的初始化方法,在这里调用父类的指定初始化方法。

- (instancetype)initPrivate{
    self = [super init];
    if (self) {
        //init
    }
    return self;
}

而为了防止调用该类的人使用init方法,可以覆盖init方法并抛出异常以提醒他该是一个单例。

-(instancetype)init{
    @throw [NSException exceptionWithName:@"Singleton" reason:@"Use +[XXXManager sharedXXXManager]" userInfo:nil];
    nil;
}

iOS开发之单例模式下的初始化方法

标签:

原文地址:http://www.cnblogs.com/limaofuyuanzhang/p/4660204.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!