1.單例模式
單例模式是一種常用的設計模式,對于一個單例類,必須保證任意時刻只有一個單例對象,并且自行實例化該對象,并向整個系統提供該對象,也就是說無論實例化單例對象多少次,都只能創建出一個對象,該對象是全局的能夠整個系統所訪問
單例對象很像c中全局變量,單例類可以實現不同對象之間的數據共享
2.單例對象的創建方式
一般是以shared/current/default開頭, 并且是類方法
3.單例模式的應用
1:單例類可以實現不同對象之間的數據共享
2:當創建一個類需要消耗很大的性能的時候
4.單例創建
//SingleClass.h文件
#import <Foundation/Foundation.h>
@interface SingleClass : NSObject
@property (copy, nonatomic)NSString *name;
//單例類提供的一種創建單例對象方法
+ (SingleClass *)sharedSingleClass;
@end
//SingleClass.m文件
#import "SingleClass.h"
//1:創建一個全局靜態的單例子對象指針,初始值為nil
static SingleClass *single = nil;
@implementation SingleClass
+ (SingleClass *)sharedSingleClass{
//2:調用GCD的once方法//網絡:多線程
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{//大括號里面代碼在整個程序運行過程只會被執行一次//block-->代碼塊,代碼段-->函數指針
//3:實例化single指針
single = [[SingleClass alloc] init];//第一次調用該方法的對象才能進行實例化
});
return single;//最后將實例化的對象返回//從第二次調用該方法,返回的都是第一次實例化的對象的首地址
}
@end