0

我正在使用 FMDB 构建一个带有 sqlite db 的应用程序,

在模拟器上一切正常,在越狱的 iPhone 上一切正常,但在具有开发者帐户的 idevice 上出现此错误

error opening!: 14

我像这样创建数据库

NSString *bundelpath = [[NSBundle mainBundle]bundlePath];
[FMDatabase databaseWithPath:[bundelpath stringByAppendingFormat:@"/database.db"]];
4

2 回答 2

1

SQLite 试图在真实设备上的完全沙盒应用程序中只读的位置打开具有读/写权限的文件。

Apple 提供的这份文档解释了您可以在哪些地方写,哪些地方不能写。

您很可能希望将其<Application_Home>/Documents/用作路径。

模拟器无需额外的沙箱即可运行,并且在其中运行的应用程序能够在开发主机的文件系统中的任何位置进行写入。

大概您的越狱也击败了应用程序沙箱。

于 2013-09-05T20:30:19.287 回答
0

马尔科是对的。这是获取文档目录的正确方法。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
于 2013-09-06T00:18:09.710 回答