+ (sqlite3 *)openDB { if (db == nil) { //获取Document文件的路径 //參数1:目录名字 參数2:查找域 參数3:是否使用绝对路径 NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; //(2)数据库文件的路径 NSString *dbPath = [docPath stringByAppendingPathComponent:FILE_NAME]; //ios 中管理文件的类,负责拷贝文件,删除文件,移动文件(和文件有关的操作) NSFileManager *fm = [NSFileManager defaultManager]; //推断document中是否有sqlite文件 if (![fm fileExistsAtPath:dbPath]) { //*.app中sqlite文件的路径; NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"DataBase" ofType:@"sqlite"]; NSError *error = nil; //拷贝bundlePath到dbPath BOOL result = [fm copyItemAtPath:bundlePath toPath:dbPath error:&error]; if (!result) { NSLog(@"%@",error);//假设错误发生打印错误信息; } } //打开数据库 //參数1:文件路径; 參数2:接收数据库的指针 sqlite3_open([dbPath UTF8String], &db); } return db; } + (void)closeDB { sqlite3_close(db); db = nil; }