UI之单例模式

使用某个类创建的对象是程序中该类的唯一对象,我们平常使用的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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值