第一、基本概念
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问。
第二、在IOS中使用单例模式的情况
1.如果说创建一个对象会耗费很多系统资源,那么此时采用单例模式,因为只需要一个实例,会节省alloc的时间
2.在IOS开发中,如果很多模块都要使用同一个变量,此时如果把该变量放入单例类,则所有访问该变量的调用变得很容易,否则,只能通过一个模块传递给另外一个模块,这样增加了风险和复杂度。
因为单例是全局哪里要用直接调用就行非常方便简单,一般我们可以用单例来作对用户信息的存储,其次单例可以做成购物车之类的页面等等。当然单例最大的优势个人感觉就是对数据的存储和读取非常方便,就可以解决页面之间传值困难的问题。简单讲下怎样用单例对数据传输吧,把需要的数据都定义成属性,当需要存储的时候直接调用存储就行,要用的时候把它调出使用就行了。
新建类 继承NSObject
#import <Foundation/Foundation.h>
@interface Singleton : NSObject
//添加属性
@property (nonatomic, strong) NSString *userName;//用户名
+ (instancetype)defaultSingleton; /**< 单例便利构造器 */
@end
#import "Singleton.h"
static Singleton *singleton = nil;
@implementation Singleton
+ (instancetype)defaultSingleton {
// GCD创建单例,效率更高,性能更好,消耗更低。
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
singleton = [[Singleton alloc] init];
});
return singleton;
}
@end
引入.h文件 #import “Singleton.h”
//存入单例
[Singleton defaultSingleton].userName = @"123";
同样引入.h文件 #import “Singleton.h”
//使用单例
NSLog(@"%@",[Singleton defaultSingleton].userName);