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]; // 正常




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值