HandleManager.h
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface HandleManager : NSObject
@property (nonatomic,retain)UIImage *image;//用于存储图片
//单例的声明
//首先单例是个加号方法 方法名一般以 share, stand,main开头 + 当前的类名
+(HandleManager *)shareHandleManager;
@end
HandleManager.m
#import "HandleManager.h"
//先定义一个静态的指针变量(对象)
static HandleManager *manager=nil;
@implementation HandleManager
//单例的实现
+(HandleManager *)shareHandleManager{
//单例:保证只有一份实例对象
//由于我们在系统中只存在一个对象,因此可以节约系统资源,对于一个需要频繁创建和销毁的对象,单例模式可以提高系统的性能.
//单例模式的意思就是只有一个实例.单例模式确保一个类只有一个实例,而且自行实例化并且向整个系统提供这个实例.这个类称为单例类.
//多线程同时调用这个单例就会出现问题 创建的实例对象就有可能不是同一个了.加了线程锁后 让该单例之中只能返回一个实例(解决线程的并发性)
//同步锁
@synchronized(self){
if(manager == nil){
manager=[[HandleManager alloc]init];
}
}
return manager;
}
@end
========GCD=========
+(id)shareManager{
static Manager *manager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
manager = [[Manager alloc]init];
});
return manager;
}