为啥在使用代码将 db 复制到文档文件夹之前 Xcode 会自动复制 db 并且它是空的?
Posted
技术标签:
【中文标题】为啥在使用代码将 db 复制到文档文件夹之前 Xcode 会自动复制 db 并且它是空的?【英文标题】:Why before using code for copy db to document folder Xcode automatically copy db and it is empty?为什么在使用代码将 db 复制到文档文件夹之前 Xcode 会自动复制 db 并且它是空的? 【发布时间】:2016-12-13 07:57:50 【问题描述】:我曾经使用代码将数据库从捆绑包复制到文档文件夹。但是当运行Xcode项目之前运行我的代码数据库已经复制到文件夹,另一个问题是:复制的数据库是空。当我的代码检查文档文件夹是否存在数据库结果为 YES 时,不会将完整的数据库复制到文档文件夹。 我正在使用 Xcode 8.1、ios8。 请帮帮我。 谢谢。
【问题讨论】:
【参考方案1】:也许,您使用 XCode 生成的代码,并在第一次调用 managedObjectContext 数据库时创建。最简单的解决方案是:
检查数据库是否为空(某些实体的记录数 == 0) 如果是,请将文件从捆绑包复制到目标目录。如果您的数据库以只读模式使用,则根本不需要将其复制到 Documents 文件夹中 - 您可以直接从 bundle 目录中使用它。
在后一种情况下,您需要在持久存储选项的目录中设置正确的键,并复制索引文件,如果您还使用 SQLITE 存储到包中。
【讨论】:
以上是关于为啥在使用代码将 db 复制到文档文件夹之前 Xcode 会自动复制 db 并且它是空的?的主要内容,如果未能解决你的问题,请参考以下文章
为啥我所有的 C++ 程序都以 0xc0000139 退出?
为啥从网上复制的东西到WORD里面文字格式就变了,显示乱码了呢
使用 Microchip XC16 编译器将 foo.cpp 构建为 C 代码
如何将 PreCreated 和 Pre Populated 完整的 sqlite database.db 文件复制到 iOS 应用程序中