由于SVN而缓存的SQLite数据库

时间:2010-07-28 17:20:27

标签: iphone svn sqlite core-data

我的iPhone应用程序使用Core Data和SQLite数据库;使用SVN跟踪版本。向数据库添加数据不会反映在应用程序中。我确保从模拟器中删除项目,并将新数据库作为文件添加到项目中。我怀疑数据是在另一个位置缓存的。

请注意,即使直接编辑,SVN也不会对数据库进行任何更改。此外,如果我将项目复制并粘贴到新文件夹,删除隐藏的svn文件夹,删除构建文件夹,编辑数据库,从模拟器中删除项目,然后编译并运行,它第一次工作。之后,数据再次缓存在某个未知位置。

这可能是什么想法?

更新: 解决方法是退出我的SVN客户端(版本)。我仍然不确定这会如何影响数据库的更新;我不认为它会阻止或恢复任何变化。我现在可以编辑和保存更改。

感谢大家的帮助。

2 个答案:

答案 0 :(得分:2)

这可能不止一些问题。如果您通过引用将SQLite DB添加到项目中,并且未进行任何代码更改,那么当您单击“构建”时,您将看不到复制的已更改数据库资源。基本上,Xcode在感知何时(引用)资源发生变化时存在长期存在的问题。做一个干净的构建是你的核选择,因为根据你的编译时间,它可能需要很长时间。更好的选择是从构建目录中删除.app包。虽然如果你有很多资源,它也可能需要一段时间才能重建Xcode。最好的选择(我使用的那个)是在引用包含的文件夹的根级别留下一个“虚拟”文件(假设它是一个空白文本文件),当我更新资源时,我将对虚拟文件,撤消更改,然后单击“保存”(Xcode内部)。这会触发Xcode中的某些内容递归遍历包含的目录,以查看是否有任何更改。

除此之外,如果您正在修改数据库文件,并且SVN告诉您尚未对其进行更改,则还会遇到其他问题。简单地说,你确定已经将数据库文件添加到SVN并已经检入过,所以SVN知道吗?你确定你正在编辑你在SVN中检查的文件吗?

答案 1 :(得分:0)

可能是数据库在其他地方吗?您是否尝试手动打开数据库以查看是否存在正确的记录?