1.单例模式
//单例:一个对象在整个应用的生命周期中,只被实例化一次,这种类我们就称它为单利类
//单例作用:可以传值,因为这个单例在在对象整个应用中都是这一个,所以它的属性可以到处调用。
//单例方法的写法约定俗成,写成shareInstance或者defaultSomething
在.m文件中,单例实现的步骤:
//第一步,声明一个这个类对象的全局静态变量。
static CharacterSingleTon *single = nil;
//第二部,准备一个单例方法,记得要在.h文件中声明,因为要在别的类里调用这个单例方法。
+(id)shareInstance
{
//第三部,做一个dispatch_once_t的局部静态变量,作用就是监视我们下面的操作是否被执行过一次了,如果执行过一次就跳过。
static dispatch_once_t onceToken;
//第四部,调用dispatch_once_t的方法,第一参数上面局部dispatch_once_t的静态变量地址,第二个参数是个block,使用的时候^{},在大括号里面实现只被执行一次的代码
dispatch_once(&onceToken,^(){
//这里可以写任何内容,括号()如果为void的话,可以省略
//实例化这个类的对象,而这个实例化的操作在这个应用中只会被执行一次。
single = [[CharacterSingleTon alloc] init];
//注意,在block右括号前的最后一个表达式后面,别忘了加分号。
});
//吧single返回
return single;
}