1

您好我正在尝试在 ios 中创建一个 sqlite 数据库。我使用带有所需参数的 sqlite3_open 方法,但我总是收到错误 14(SQLITE_CANTOPEN 14 /* 无法打开数据库文件 */)。

即使使用最简单的声明它也不起作用

NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *dbPath = [[[NSBundle mainBundle] resourcePath ]stringByAppendingPathComponent:@"data.sqlite3"];

BOOL success = [fileMgr fileExistsAtPath:dbPath];

sqlite3 *db;

if(!success)
{
    NSLog(@"Cannot locate database file '%@'.", dbPath);
}

if(!(sqlite3_open([dbPath UTF8String], &db) == SQLITE_OK))
{
    NSLog(@"An error has occured.");
}
else{
    NSLog(@"Ok");
}

任何想法发生了什么?

谢谢。

4

2 回答 2

4

您无法在应用程序包中获得对 sqlite 数据库的写入权限。相反,将包中的数据库复制到“文件”系统中的适当位置(考虑到 iCloud 问题),然后在那里打开它。让您的应用程序首先在文件系统中查找数据库,如果不存在则仅复制它。

于 2013-02-27T17:37:34.683 回答
1

使用文档目录来存储数据库文件,然后创建 sqlite.... 它的工作原理

于 2013-09-06T18:06:59.770 回答