繁体   English   中英

sqlite可以在模拟器上运行,但不能在设备上运行

[英]sqlite works on simulator, but not on device

我有一个问题,我无法使我的sqlite数据库在ipad设备上工作/打开。 一切都可以在模拟器上正常运行,但不能在真实设备上运行。 我想在设备上进行测试时将MODE设置为NO,但无法加载。

    sqlite3 *database;
if (MODE) { //Simulator
    result = sqlite3_open("/Users/userID/Myapp/VRdb.sqlite", &database);
} else { // On device
    result = sqlite3_open([databasePath UTF8String], &database);
}

if(result != SQLITE_OK)
{
    sqlite3_close(database);
    view = [[UIAlertView alloc]
            initWithTitle: @"Database Error"
            message: @"Failed to open database."
            delegate: self
            cancelButtonTitle: @"OK" otherButtonTitles: nil];
    [view show];
    [view autorelease];

}

databasePath通过以下方式获取:

databasePath = [[NSBundle mainBundle] pathForResource:@“ VRdb” ofType:@“ sqlite”];

有什么我想念的吗?????

该路径上实际上有文件吗? 尽管sqlite3_open()函数将创建文件(如果不存在),但是您无法在应用程序捆绑包内创建文件(权限)。 该文件实际上必须已经存在,并在构建时作为资源复制到捆绑软件中,然后用作模板复制到可写区域(如documents文件夹)。

(感谢Peter促使我意识到我的回答不完整:-))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM