【问题标题】:Xcode 5/Mavericks - Cocoa Core Data SQLite DB LocationXcode 5/Mavericks - Cocoa 核心数据 SQLite 数据库位置
【发布时间】:2013-12-15 21:58:59
【问题描述】:

我看到其他问题问同样的问题,它们都被标记为“已回答”,但他们提供的答案对我不起作用。

我在 Xcode 5 中创建了一个基本的 cocoa 应用程序,并使其成为核心数据/文档应用程序。我在 Core Data 中添加了一些条目,当我读回它们时可以在 NSLog 中看到它们......现在我的 sqlite DB 位于哪里?

我检查了: ~/库/容器/

我的应用不存在。

我检查了: ~/Library/Developer/XCode/DerivedData/

我在那里找到了我的应用程序,但我浏览了每个文件夹,根本找不到 SQLite。

谁能告诉我这是在哪里?这是一个 Mac OSX 应用程序,而不是 iOS 应用程序。

【问题讨论】:

  • 您确定使用 sqlite 作为存储吗?它应该在~/Library/Application Support/appname/ IIRC,但我确定您可以将路径更改为您喜欢的任何内容。只需搜索您的库文件夹即可。
  • 你是如何把它变成一个核心数据/文档应用程序的?你如何设置核心数据堆栈?你在使用 NSPersistentDocument 吗?
  • 我刚刚使用 Xcode 5/Mavericks 创建了一个测试应用程序,并检查了“基于文档的应用程序”和“核心数据”选项,它的工作方式似乎与早期版本中的工作方式相同。您必须使用 File->Save 将文档保存到磁盘,然后输入文件名并选择格式(二进制、sqlite、xml)。

标签: xcode macos cocoa core-data


【解决方案1】:

数据存储文件是……无论你把它放在哪里。该位置不是自动生成的,它是您的代码所说的位置。具体来说,当您调用addPersistentStore: 时,您会传入一个确定位置的文件 URL。找到该调用并查看它使用的路径。

通常但并非总是如此,它位于应用程序支持文件夹中。如果您的应用是沙盒化的,那么它位于~/Library/Containers/ 中的某个位置。如果您的应用程序没有被沙盒化,那么它位于~/Library/Application Support/ 的某个位置。

但商店不必在应用程序支持中。它可以是您的应用程序具有文件写入权限的任何位置。如果您的应用程序没有被沙盒化,它可能会转到当前用户具有文件写入权限的任何地方。它是你告诉 Core Data 放置它的地方。

【讨论】:

  • 就是这样。我正在使用一个辅助函数来创建将它自动转储到我的文档目录中的 persistentStore。感谢您指出这一点!
猜你喜欢
  • 2014-07-30
  • 2011-01-11
  • 2011-10-07
  • 1970-01-01
  • 2013-11-26
  • 2011-01-01
  • 2014-03-31
  • 1970-01-01
相关资源
最近更新 更多