单例模式就是一个类在整个程序的生命周期中只创建一个实例
实现过程:
// Singclass.h #import <Foundation/Foundation.h> @interface Singclass : NSObject @property(nonatomic,strong)NSString *name; + (id)share_id; @end // Singclass.m #import "Singclass.h" @implementation Singclass + (id)share_id { static Singclass *singClass = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ singClass = [[Singclass alloc]init]; }); return singClass; } @end
该方法采用的时GCD技术,dispatch_once是GCD提供的函数,它在整个程序的生命周期中只执行一次代码块中的语句,用此种方法创建的单例会自动线程同步,在多线程下是安全的。
使用单例的目的:
1,共享资源(属性)
2,共享方法
3,减少类的多次创建(优化性能)
系统单例:
比如UIApplication, NSFileManager,NSBundle, NSNotificationCenter, NSUserDefaults.