+ (sqlite3 * )openDB;
{
if (db == nil) {
获取document文件的路径
参数1: 文件夹名字 参数2 . 查找域 参数3. 是否使用绝对路径
NSString * docPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject ;
数据库文件的路径
NSString * dbPath = [docPath stringByAppendingPathComponent:FILE_NAME];
iOS 中管理文件的类
NSFileManager 负责赋值文件, 删除文件 , 移动文件
NSFileManager * fm = [NSFileManager defaultManager];
判断document中是否有sqlite文件 , 没有则从app中复制文件到 document
if (![fm fileExistsAtPath:dbPath]) {
获取.APP 中 sqlite文件路径
NSString * bundlePath = [[NSBundle mainBundle] pathForResource:@"DataBase" ofType:@"sqlite"];
NSError * error = nil;
复制
BOOL result = [fm copyItemAtPath:bundlePath toPath:dbPath error:&error];
if (!result) {
NSLog(@"%@",error);
}
}
打开数据库 . 参数1 文件路径 参数2 , 接收数据库的指针
sqlite3_open([dbPath UTF8String], &db);
}
return db;
}