iphone - 正在引用的 SQLite 空数据库

标签 iphone ios database sqlite

希望有人可以帮助新的 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/

相关文章:

ios - MDM 保护私有(private)设备上的应用程序

ios - 如何在 swift 4 中过滤二维模型数组,

iOS 内存病疯狂

mysql - 触发器中使用 If_Else 时出错

iphone - 可以将 PDF 文件和视频嵌入到 iOS 应用程序中吗?

ios - 正确管理调度队列以减少iOS手机发热

iPhone View Controller 注册

iphone - iPhone中的CNCopyCurrentNetworkInfo()函数返回什么信息

sql-server - SQL Server 开发者版有图形用户界面吗?

database - 我应该最大限度地分解关系数据库中的表吗?