iOS单例

1.单例命名以shareXXX开头。

如:UIApplication *app = [UIApplicationsharedApplication];


2.外界不能调用alloc方法,一屌用就抛异常。

+ (instancetype) alloc

{

    if (_instance)

    {

        //标示已分配了内存

        NSException *exp = [NSExceptionexceptionWithName:@"NSInternalInconsistencyException"reason:@"There can only be one Person instance."userInfo:nil];

        //抛异常

        [exp raise];

    }

    return [superalloc];

}


3.提供一个方法给外界,用来获取单例。

+ (instancetype) sharePerson

{

    return_instance;

}


4.内部创建单例,ios程序启动的时候就创建单例

// 加载类的时候

+ (void) load

{

    NSLog(@"%s", __func__);

    _instance = [[selfalloc] init];

}


5.测试

[[Person alloc] init]; // 抛异常

[[Person sharePerson]; // 正常




你可能感兴趣的:(iOS基础)