2010-07-28 57 views
1

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

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

任何想法,这可能是?

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

谢谢大家的帮助。

回答

2

在这里可能不止是两件事情出错。如果您通过引用将SQLite数据库添加到您的项目中,并且您没有进行任何代码更改,那么当您单击“构建”时,将看不到已更改的已更改的数据库资源。基本上,Xcode在检测(参考)资源发生变化时存在长期存在的问题。做一个干净的构建是你的核心选择,因为取决于你的编译时间,它可能需要很长时间。一个更好的选择是从构建目录中删除.app包。这并不需要Xcode重建,但如果你有很多资源,它也可能需要一段时间。最好的选择(我使用的)是在引用包含的文件夹的根目录下留下一个“虚拟”文件(假设它是一个空白文本文件),当我更新资源时,我将更改为虚拟文件,撤消更改,并点击保存(在Xcode中)。这会触发Xcode中的某些内容以递归方式遍历包含的目录,以查看是否有更改。所有这一切,如果你正在修改数据库文件,并且SVN告诉你,你还没有对它进行更改,你还有其他问题正在进行。简单地说,你确定数据库文件已经被添加到SVN中,SVN知道了吗?你确定你正在编辑你在SVN中检查的文件吗?

+0

谢谢你的回复。我一直在清理和清理所有目标。我也尝试删除.app文件并重新编译。我得到相同的结果。 SVN似乎只知道该文件何时被删除。编辑数据库不会显示任何更改。我尝试了关于xCode保存的建议,甚至编辑了一行代码,结果仍然相同。请注意,在没有SVN文件夹的项目副本中出现相同的行为,这使我怀疑SVN可能不是罪魁祸首。 – 2010-07-28 17:53:10

+0

你如何添加资源?参考与否?是否有另一个同名的资源?是否有一个前期或后期构建过程正在对资源进行一些操作? – 2010-07-28 18:42:54

+0

我将db拖入xcode项目到一个文件夹中。我点击“如果需要复制”。它显示项目目录中的数据库以及.xcodeproj – 2010-07-28 18:52:50

0

难道数据库在别处吗?您是否尝试过手动打开数据库以查看是否有正确的记录?