希望有人可以帮助新的 iOS 开发人员——我有一个现成的 sqlite 数据库,名为 teamresults.db,我使用“添加文件...”将其添加到项目中,但是当我使用下面的代码时,我似乎连接/引用一个空数据库而不是添加的数据库(在通过终端检查时,模拟器使用的数据库大小为 0mb,而我添加的数据库大小约为 3mb)。
似乎应用程序正在创建一个空数据库,但我不明白为什么?有什么想法吗?
作为引用,我没有收到任何错误消息:
BOOL success;
dbName = @"teamresults.db";
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
dbPath = [documentsDir stringByAppendingPathComponent:dbName];
NSFileManager *fileManager = [NSFileManager defaultManager];
success = [fileManager fileExistsAtPath:dbPath];
if(success) {
return;
}
NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:dbName];
[fileManager copyItemAtPath:databasePathFromApp toPath:databasePathFromApp error:nil];
最佳答案
这行代码似乎有问题:
[fileManager copyItemAtPath:databasePathFromApp toPath:databasePathFromApp error:nil];
正确的应该是:
[fileManager copyItemAtPath:databasePathFromApp toPath:dbPath error:nil];
您应该将数据库复制到沙箱路径而不是资源路径!!
关于iphone - 正在引用的 SQLite 空数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8701179/