[iOS]封装单例类
[iOS]封装单例类
今天在学习iOS的SQLite开发,发现在需要使用SQLite的每个视图中,都需要对数据库进行打开或关闭,觉得挺麻烦的;于是在想能否写个单例类对这些操作进行封(因以前一直在使用Delphi、AS3都有使用过此方法)。经网上搜索,原来是非常简单;
只要以下几步即可完成:
1、点击“xCode”菜单上的File->New-File...

2、选择Cocoa Touch“Objective-C class”,然后点击"Next"。

3、输入Class,如“DataProvider”,在Subclass of中选择继承的类“NSObject”,然后按“Next",然后按“Create”。

4、此时会见到“DataProvider.h”和“DataProvider.m”文件。
5、在接口文件“DataProvider.h”中输入以下内容:

1 #import <Foundation/Foundation.h>
2
3 @interface DataProvider : NSObject
4
5 +(DataProvider *) getInstance;
6
7 -(id) init;
8
9 @end

6、在实现文件“DataProvider.m”中输入以下内容:

#import "DataProvider.h"
@implementation DataProvider
+ (DataProvider *) getInstance {
static DataProvider *_instance = nil;
@synchronized(self){
if (!_instance){
_instance = [[DataProvider alloc] init];
return _instance;
}
}
return _instance;
}
- (id) init{
if (self = [super init]){
//在此处进行初始化设置
}
return self;
}

7、调用,在需要调用的视图中
//先导入接口文件
#import "DataProvider.h" //在需要的地方进行以下调用
[DataProvider getInstance];
8、完成;
下一篇将会写如何将SQLite封装到此单例类中;
[iOS]封装单例类的更多相关文章
- log4cpp单例类封装
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- muduo网络库源码学习————线程本地单例类封装
muduo库中线程本地单例类封装代码是ThreadLocalSingleton.h 如下所示: //线程本地单例类封装 // Use of this source code is governed b ...
- iOS中编写单例类的心得
单例 1.认识过的单例类有哪些: NSUserDefaults.NSNotificationCenter.NSFileManager.UIApplication 2.单例类 单例类某个类在代码编写时使 ...
- iOS - OC SingleClass 单例类
前言 单例对象能够被整个程序所操作.对于一个单例类,无论初始化单例对象多少次,也只能有一个单例对象存在,并且该对象是全局的,能够被整个系统访问到. 特点: 在内存中只有一个实例 提供一个全局的访问点 ...
- iOS - Swift SingleClass 单例类
前言 单例对象能够被整个程序所操作.对于一个单例类,无论初始化单例对象多少次,也只能有一个单例对象存在,并且该对象是全局的,能够被整个系统访问到. 单例类的创建 1.1 单例类的创建 1 单例类的创建 ...
- ios开发之 -- 单例类
单例模式是一种软件设计模式,再它的核心结构中指包含一个被称为单例类的特殊类. 通过单例模式可以保证系统中一个类只有一个势力而且该势力易于外界访问,从而方便对势力个数的控制并节约系统资源.如果希望在系统 ...
- 设置模式之单例模式(附上一个Objective-C编写的播放音乐的单例类)
在查阅Cocoa Touch开发文档时,会发现框架中随处可见的大量单例类,比如说,UIApplication.NSFileManager 等. UIApplication 框架中极为常用的一个单例类, ...
- Java单例类的简单实现
对于java新手来说,单例类给我的印象挺深,之前一道web后台笔试题就是写单例类.*.*可惜当时不了解. 在大部分时候,我们将类的构造器定义成public访问权限,允许任何类自由创建该类的对象.但在某 ...
- GCD实现简单的单例类-Singletion
什么是单例模式 1.单例模式是一个类在系统中只有一个实例对象.通过全局的一个入口点对这个实例对象进行访问.在 iOS 开发中,单例模式是非常有用的一种设计模式.如 下图,是一个简单单例模式的 UML ...
随机推荐
- 私人定制javascript中对象小知识点(Only For Me)
废话不多讲,先上笑话,然后再,.看懂这个的说明你的节操已经不再了. 晚饭后去理发店理发...割了吧...老板问我怎么剪,我悠悠的来一句往帅了剪...高潮往往令人想不到....旁边一在焗油烫头发的大妈说 ...
- MVC5控制器、路由、返回类型、选择器、过滤器
ASP.NET MVC5 学习笔记-1 控制器.路由.返回类型.选择器.过滤器 [TOC] 1. Action 1.1 新建项目 新建项目->Web->Asp.net Web应用程序, ...
- windows socket 网络编程
样例代码就在我的博客中,包含六个UDP和TCP发送接受的cpp文件,一个基于MFC的局域网聊天小工具project,和此小工具的全部执行时库.资源和执行程序.代码的压缩包位置是http://www.b ...
- Spring之使用Annotation注解开发项目
我们也可以使用Annotation来实现注入操作,提高我们写代码的灵活性和效率.spring中要使用annotation,需要在配置文件中增加: <beans xmlns="http: ...
- 天体程序猿叹息——变化hosts对
没有解释更新一SDK像贼,我真诚地希望在天上Android.ios我们已经禁止了.要玩不能玩才最寂寞 安装成功不寂寞hosts文件: 74.125.237.1 dl-ssl.google.com173 ...
- JavaScript重载解读
在JavaScript有一个特殊的数据类型---Function种类,JavaScript每个功能Function的类型,例如可以.由于函数是对象.指针,不会与某个函数绑定. <pre name ...
- cocos2d-x-lua基础系列教程三(lua面向对象)
lua 类 Lua 事实上不是面向对象语言 我们能够用table 模拟仿照面向对象编程 lua 中的this 类似的是self table 也具有生命周期 2,使用table 创建类 projed ...
- C#调用Outlook来发送邮件
原文:C#调用Outlook来发送邮件 写了一个简单的Windows Form程序,实现利用Outlook来发送电子邮件的功能.下面逐步讲解如何实现,再加上具体的代码. 打开VS2010, 新建一个W ...
- javascript面向对象2
原文:javascript面向对象2 首先我们先创建一个对象 var user = Object(); user.name = "张三"; user.age = 20; user. ...
- Maven包装过程中跳过测试
在具体项目,步骤需要跳过假设检验,应采取skipTests此属性设置为true. <pre name="code" class="html">< ...