SQLite空数据库被引用

时间:2012-01-02 13:05:07

标签: iphone ios database sqlite

希望有人可以帮助新的iOS开发人员 - 我有一个现成的sqlite数据库,名为teamresults.db,我使用“Add Files ...”添加到项目中但是当我使用下面的代码时,我似乎连接/引用空数据库而不是添加的数据库(通过终端检查模拟器使用的数据库大小为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];

2 个答案:

答案 0 :(得分:3)

这行代码似乎有问题:

[fileManager copyItemAtPath:databasePathFromApp toPath:databasePathFromApp error:nil];

正确的是:

[fileManager copyItemAtPath:databasePathFromApp toPath:dbPath error:nil];

您应该将数据库复制到沙箱路径而不是资源路径!!

答案 1 :(得分:0)

做一件事。通过右键单击删除添加的数据库,然后单击“删除”而不是“仅删除引用”。然后再次添加它,不要忘记单击“复制到目标项”。希望这会对你有所帮助。