当我在我的应用程序中遇到一些性能问题并发现我以一种糟糕的方式使用数据库访问时。
所以我决定转向单例模式。
我需要有人检查此代码并确认我通过单例模式进行了良好的数据库访问,或者我做错了什么:
这是类:
@interface DataAccessController : NSObject{
sqlite3 *databaseHandle;
}
+ (id)sharedManager;
-(void)initDatabase;
...
+ (id)sharedManager {
static DataAccessController *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] init];
});
return sharedMyManager;
}
- (id)init {
if (self = [super init]) {
[self initDatabase]; // open database connection
}
return self;
}
...
AppDelegate.m
DataAccessController *d = [DataAccessController sharedManager];
每次我需要使用的数据时通过应用程序使用:
DataAccessController *d = [DataAccessController sharedManager];
NSMutableArray* data = [d getAllRecordedUnits];