[英]SQLite works on device, but not in simulator. sqlite3_prepare_v2 fails
[英]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.