UI之单例模式
2015-06-16 11:11
477 查看
使用某个类创建的对象是程序中该类的唯一对象,我们平常使用的alloc创建的对象都是不同的对象
使用场合:多个类使用同一个类的对象的时候,就需要用到单例模式,及该类的对象只被创建一次
例如:做一个通讯录的App,一览画面、添加画面、查看画面需要使用同一个数据源进行联系人数据的管理,这里我们就可以对数据源的管理类使用单例模式了
首先创建数据源管理类(DataBase)
DataBase.h
DataBase.m
static修饰 DataBase *dataBase = nil;表示DataBase *dataBase = nil;只被执行一次,由此实现dataBase对象只被创建一次
使用方法:
使用场合:多个类使用同一个类的对象的时候,就需要用到单例模式,及该类的对象只被创建一次
例如:做一个通讯录的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]
相关文章推荐
- web.xml中dispatcher标签详解
- (转)通过Chisel加强LLDB的UI调试能力
- 如何使用NSOperations和NSOperationQueues
- 【EasyUI学习-3】Easyui tabs入门实践
- Implement Stack using Queues
- 常用设备类别及其GUID
- IOS UIScrollView中 使用 touch 无法响应的问题
- IOS Key-Value Observing (KVO)
- IOS Key-Value Observing (KVO)
- 【Android UI设计与开发】第09期:底部菜单栏(四)Fragment+PopupWindow仿QQ空间最新版底部菜单栏
- 【uiautomator】UiDevice
- Android stuido debug调试
- VS2008工程移植到2010的问题'system.io.fileloadexception was unhandled message=mixed mode assembly is built ag
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- LeetCode OJ 之 Implement Stack using Queues(使用队列实现栈)
- easy ui 隐藏tabs项
- Ext.Ajax.request 用法参数介绍
- fluent validation
- VSTO之旅系列(三):自定义Excel UI
- FeatureClass.Search(IQuery Filter,bool Recycling)参数说明