背景
单例类是一个非常重要的概念,因为它们表现出了一种十分有用的设计模式。单例类的应用贯穿于整个iPhone SDK中。例如,UIApplication类有一个方法叫sharedApplication,从任何地方调用这个方法,都将返回与当前正在运行的应用程序相关联的UIApplication实例。
单例类保证了应用程序的生命周期中有且仅有一个该类的实例对象,而且易于外界访问。
DownloadingItems.h
#import@interface DownloadingItems : NSObject+(instancetype) sharedInstance;@end
DownloadingItems.m
#import "DownloadingItems.h"@implementation DownloadingItemsstatic DownloadingItems * _sharedInstance;+(instancetype)sharedInstance{ @synchronized ([DownloadingItems class]) { if (_sharedInstance == nil) { _sharedInstance = [NSMutableSet set]; } } return _sharedInstance;}@end
使用的方法
if (![(NSMutableSet *)[DownloadingItems sharedInstance] containsObject:downloadItem]) { do something }