单例的理解

2018-06-14  本文已影响0人  婼熙之名

个人从两方面进行分析:

1.static静态变量

用static声明局部变量时,则改变变量的存储方式(生命期),使变量成为静态的局部变量,即编译时就为变量分配内存,直到程序退出才释放存储单元。这样,使得该局部变量有记忆功能,可以记忆上次的数据,不过由于仍是局部变量,因而只能在代码块内部使用(作用域不变)。

2.当前对象只创建一次

static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

            此区域内的代码只执行一次。

    });

综上所属:static声明的intance对象,编译时就分配了内存,后期通过dispatch_once的方法进行intance的赋值,以后再次调用单例方法,都会获取已经存在的局部变量intance。

上一篇 下一篇

猜你喜欢

热点阅读