【问题标题】:SQLite database cached due to SVN由于 SVN 缓存的 SQLite 数据库
【发布时间】:2010-07-28 17:20:26
【问题描述】:

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

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

有什么想法吗?

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

感谢大家的帮助。

【问题讨论】:

    标签: iphone svn sqlite core-data


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回复。我一直在清理和清理所有目标。我还尝试删除 .app 文件并重新编译。我得到相同的结果。 SVN 似乎只知道文件何时被删除。编辑数据库不会显示任何更改。我尝试了您关于 xCode 中保存的建议,甚至编辑了一行代码并这样做了,结果仍然相同。请注意,同样的行为发生在没有 SVN 文件夹的项目副本中,这让我怀疑 SVN 可能不是罪魁祸首。
    • 你是如何添加资源的?参考还是不参考?是否有其他同名资源?是否有一个构建前或构建后的过程正在对资源进行某些操作?
    • 我将 db 拖入 xcode 项目的文件夹中。我点击“如有必要复制”。它显示项目目录中的数据库以及 .xcodeproj
    【解决方案2】:

    会不会是数据库在别处?您是否尝试过手动打开数据库以查看是否存在正确的记录?

    【讨论】:

      猜你喜欢
      • 2013-06-08
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      • 2016-01-31
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      相关资源
      最近更新 更多