1. 单例设计模式(Singleton)
* 保证某个类创建出来的对象永远只有一个
2. 作用
* 节省内存开销。
* 如果有些数据,整个程序中都用得上,只需要使用同一份资源(保证大家访问的数据是相同一致的)
* 一般来说工具类设计为单例模式合适
3. 实现
* MRC
* ARC
SoundTool.h
1#import<Foundation/Foundation.h>23@interfaceSoundTool : NSObject <NSCopying>45+(instancetype)shareSoundTool;67@end
View Code
SoundTool.m
#import"SoundTool.h"@implementationSoundToolstaticid_instance =nil;+ (instancetype)allocWithZone:(struct_NSZone *)zone
{if(_instance ==nil) {staticdispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instance=[super allocWithZone:zone];
});
}return_instance;
}+(instancetype)shareSoundTool
{return[[self alloc] init];
}-(instancetype)init
{staticdispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_instance=[super init];
});return_instance;
}+ (instancetype)copyWithZone:(struct_NSZone *)zone
{return_instance;
}+ (instancetype)mutableCopyWithZone:(struct_NSZone *)zone
{return_instance;
}//以下三个为非ARC使用- (onewayvoid)release
{
}-(instancetype)retain
{return_instance;
}-(NSUInteger)retainCount
{return1;
}
View Code
4. 建议包装成宏使用