sqlite数据库在iPhone模拟器上打开很好,但在设备上没有

时间:2010-05-04 01:00:35

标签: iphone database sqlite ios-simulator

为什么在iPhone模拟器上运行正常...但数据库不能 在iPhone设备上打开?

sqlite3 *g_Db = nil;

BOOL OpenDatabase(NSString *databaseName)
{
    if(sqlite3_open([databaseName UTF8String], &g_Db) == SQLITE_OK)
    {
        NSLog(@"Opened db ok");
        return(YES);
    }
    else
    {
        NSLog(@"Can't open the db");
        sqlite3_close(g_Db);
        g_Db = nil;
        return(NO);
    }
}

1 个答案:

答案 0 :(得分:1)

如果数据库尚不存在且您正在使用SQLite在第一次引用时创建数据库的能力,则文件路径必须指向iPhone的文档目录(或tmp),因为您可以写入应用程序包目录在模拟器中但由于权限而不在设备上。这是唯一一个突然出现在我身上的东西,两者之间明显不同,这会影响SQLite代码。