我们为什么会引入单例设计这个概念 (有些类多次创建没有必要:会带来内存开销的问题)
我们写第一个单例:
- static
通过定义一个静态全局变量 来保存创建的Singleton(单例)对象、每次要获取该实例时 都要判断该static 全局变量是否为nil(空)、如果为空 初始化一个实例并赋值给static全局变量
- 在创建的Singleton类 .h接口文件声明instance 方法允许程序通过该方法来获取唯一的实例接下来我们来为MySingleton这个类实现单例
#import<Foundation/Foundation.h>
@interface MySingleton : NSObject
+ (id)instance;
@end
- Singleton类 .m 实现文件中定义一个static全局变量来保存声明的单例 然后我们在实现instance这个单例
#import "MySingleton.h"
static id instance = nil;
@implementation MySingleton
+ (id) instance
{
// 如果instance为nil
if(!instance)
{
// 创建一个Singleton实例,并将该实例赋给instance全局变量
instance = [[super alloc] init];
}
return instance;
}
@end
**到目前为止,我们就实现了一个单例,一切就搞定了,是不是很简单!
使用就按照如下方式获取唯一实例即可:
MySingleton *mySingleton = [MySingleton instance];