单例:一个类只有一个实例在外部,创建对象时不能使用alloc 只要alloc 就会在堆区开辟空间,就意味着有多个对象
 所以我们要提供一个创建对象的方法 而且是以+ 号方法

 default , standard, main, shared 开头的都是单例



+(Singleton *)shardSingleton;





+(Singleton *)shardSingleton
{
     单例的空间在程序运行的期间都不会回收,所以要谨慎使用单例,否则会造成内存堆积
 static   Singleton * single = nil;   //static 只初始化一次 , 保证该变量在程序运行期间空间不会回收,而且保证只初始化一次.
    if (!single) {
        single = [[Singleton alloc]init];
    }
    
    return single;
}