您的位置:首页 > 产品设计 > UI/UE

UI之单例模式

2015-06-16 11:11 477 查看
使用某个类创建的对象是程序中该类的唯一对象,我们平常使用的alloc创建的对象都是不同的对象

使用场合:多个类使用同一个类的对象的时候,就需要用到单例模式,及该类的对象只被创建一次

例如:做一个通讯录的App,一览画面、添加画面、查看画面需要使用同一个数据源进行联系人数据的管理,这里我们就可以对数据源的管理类使用单例模式了

首先创建数据源管理类(DataBase)

DataBase.h

#import <Foundation/Foundation.h>
@class Contact;

@interface DataBase : NSObject

#pragma mark 添加联系人
- (BOOL)addContact:(Contact *)contact;

#pragma mark 删除联系人
- (BOOL)deleteContact:(Contact *)contact
firstCharacter:(NSString *)firstCharacter;

#pragma mark 查看全部联系人
- (NSDictionary *)allContacts;

#pragma mark 查看索引
- (NSArray *)allKeysArray;

#pragma mark 单例构造器
+ (DataBase *)sharedDataBase;

#pragma mark 读取plist文件的数据
- (void)loadData;

@end
其中 + (DataBase *)sharedDataBase类方法就是单例方法。

DataBase.m

#pragma mark 单例构造器
+ (DataBase *)sharedDataBase
{
static DataBase *dataBase = nil;
if (dataBase == nil) {
dataBase = [[DataBase alloc] init];
// 初始化大字典
dataBase.allDataDict = [NSMutableDictionary dictionary];
// 初始化数组
dataBase.allKeysArray = [NSMutableArray array];
// 加载plist文件中的数据
[dataBase loadData];
}
return dataBase;
}


static修饰 DataBase *dataBase = nil;表示DataBase *dataBase = nil;只被执行一次,由此实现dataBase对象只被创建一次

使用方法:

[DataBase sharedDataBase]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: