[iOS]封装单例类

今天在学习iOS的SQLite开发,发现在需要使用SQLite的每个视图中,都需要对数据库进行打开或关闭,觉得挺麻烦的;于是在想能否写个单例类对这些操作进行封(因以前一直在使用Delphi、AS3都有使用过此方法)。经网上搜索,原来是非常简单;

只要以下几步即可完成:

1、点击“xCode”菜单上的File->New-File...

[iOS]封装单例类-LMLPHP

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

[iOS]封装单例类-LMLPHP

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

[iOS]封装单例类-LMLPHP

4、此时会见到“DataProvider.h”和“DataProvider.m”文件。

5、在接口文件“DataProvider.h”中输入以下内容:

[iOS]封装单例类-LMLPHP
1 #import <Foundation/Foundation.h>
2
3 @interface DataProvider : NSObject
4
5 +(DataProvider *) getInstance;
6
7 -(id) init;
8
9 @end
[iOS]封装单例类-LMLPHP

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

[iOS]封装单例类-LMLPHP
#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;
}
[iOS]封装单例类-LMLPHP

7、调用,在需要调用的视图中

//先导入接口文件
#import "DataProvider.h" //在需要的地方进行以下调用
[DataProvider getInstance];

8、完成;

下一篇将会写如何将SQLite封装到此单例类中;

 
 
分类: iOS
标签: 单例类
04-19 21:19