iOS 一个控制器单例的实现与使用

控制器单例的实现与平时单例的实现方法一致,代码如下:

static BluetoothGuideController *instance;
+(id)shareInstance{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        if(instance == nil)
            instance = [[BluetoothGuideController alloc] init];
    });
    return instance;
}

使用:

BluetoothGuideController *controller = [BluetoothGuideController shareInstance];
            [self.navigationController pushViewController:controller animated:YES];

网上有不少说是同时需要实现如下两个方法,才算是真正的单例


+(id)allocWithZone:(struct _NSZone *)zone{
    return [BluetoothGuideController shareInstance];
}

-(id)copyWithZone:(NSZone *)zone{
    return [BluetoothGuideController shareInstance];
}

But ,我实现这两个方法的后,在使用的时候会崩溃掉,并且没有任何错误信息。但是只实现shareInstance 就没问题。

是我哪里写的不对,还是这个崩溃是什么原因造成的,欢迎了解的伙伴提点。

参考文章:https://blog.csdn.net/bboyfeiyu/article/details/41980085

你可能感兴趣的:(总结,常用,项目)