IOS中单例的设计

2024-11-03 21:17:38

1、单例模式的作用可以保证在程序运行过程,一个类只有一个实例,而且该实例易于供外界访问;从而方便地控制了实例个数,并节约系统资源

2、单例模式的使用场合在整个应用程序中,共享一份资源(这份资源只需要创建初始化1次)

3、单例模式在ARC\MRC环境下的写法有所不同,需要编写2套不同的代码

4、1 可以用宏判断是否为ARC环境#if__has_feature(objc_arc)//ARC#else//MRC#endif

IOS中单例的设计

6、3非ARC中(MRC),单例模式的实现(比ARC多了几个步骤)(1)实现内存管理方法-(id)retain{returnself;}-(NSUInteger)retainCount{return1;}-(onewayvoid)release{}-(id)autorelease{returnself;}

IOS中单例的设计

9、2新建一个名为“SingletonDemo”的类,继承自“NSObject”

IOS中单例的设计IOS中单例的设计

11、4在类的.m文件中实现相应的方法#import"SingletonDemo.h"@implementationSingletonDemo//定义一个全局的static的实例staticid_instance;/***重写allocWithZone:方法,在这里创建唯一的实例*/+(id)allocWithZone:(struct_NSZone*)zone{staticdispatch_once_tonceToken;dispatch_once(&onceToken,^{_instance=[superallocWithZone:zone];});return_instance;}/***提供一个给外部调用的实例化类方法*/+(instancetype)sharedSingletonDemo{staticdispatch_once_tonceToken;dispatch_once(&onceToken,^{_instance=[[selfalloc]init];});return_instance;}/***为了考虑得更全面一些,把copy策略创建对象的方法也重写一遍*/+(id)copyWithZone:(struct_NSZone*)zone{return_instance;}@end

IOS中单例的设计
猜你喜欢