代码之家  ›  专栏  ›  技术社区  ›  Oh Danny Boy

由于svn而缓存的sqlite数据库

  •  1
  • Oh Danny Boy  · 技术社区  · 14 年前

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

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

    有什么想法吗?

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

    谢谢大家的帮助。

    2 回复  |  直到 13 年前
        1
  •  2
  •   Shaggy Frog    14 年前

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

    除此之外,如果您正在修改数据库文件,并且SVN告诉您您尚未对其进行更改,那么您还有其他问题。简单地说,您确定DB文件已经被添加并签入到SVN,所以SVN知道吗?你确定你在编辑同一个文件,你在登记SVN?

        2
  •  0
  •   MPelletier    14 年前

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