我尝试在我的支持文件文件夹中导入 db 并使用以下方法连接到 db:
NSString *sqliteDb = [[NSBundle mainBundle] pathForResource:@”person” ofType:@”sqlite”];
if(sqlite3_open([sqliteDb UTF8String], & database)!=SQLITE_OK)
我尝试通过插入的代码插入值,但是当我退出程序并检查数据库时,值不存在。我不知道这里出了什么问题。
我尝试在我的支持文件文件夹中导入 db 并使用以下方法连接到 db:
NSString *sqliteDb = [[NSBundle mainBundle] pathForResource:@”person” ofType:@”sqlite”];
if(sqlite3_open([sqliteDb UTF8String], & database)!=SQLITE_OK)
我尝试通过插入的代码插入值,但是当我退出程序并检查数据库时,值不存在。我不知道这里出了什么问题。
行。现在将该数据库复制到将成为应用程序数据存储的任何本地位置。下面给出的代码将执行相同的操作。
NSArray *docPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *docDir = [docPaths objectAtIndex:0];
NSString *dbPath = [[docDir stringByAppendingPathComponent:@"person.rsd"] retain];
NSFileManager *fm = [NSFileManager defaultManager];
BOOL success = [fm fileExistsAtPath:dbPath];
if(success) return;
NSString *dbPathFromApp=[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent :@"person.rsd"];
[fm copyItemAtPath:dbPathFromApp toPath:dbPath error:nil];
之后,执行您的查询,您将在应用程序模拟器文件夹中插入数据。
捆绑包中的文件是只读的。您不能编辑它们。您需要将该数据库复制到应用程序的缓存、文档或临时目录以执行操作。
首先将您的 person.sqlite 数据库复制到应用程序的文档目录中,然后打开该数据库进行操作。