如何查看存储在核心数据中的数据?
我正在为我的应用程序创建一个核心数据模型。我希望能够在里面查看我存储在那里的内容。如何查看存储在核心数据中的数据?
是否有比寻找后台存储更容易的方法(我的应该是SQLite)并从那里读取?似乎不是苹果式的。
一旦您的应用程序在模拟器中运行并创建了持久性存储文件,您就可以在应用程序的Documents目录中找到该文件。
您的应用程序将是文件夹中(〜是你的主目录):
〜/库/应用程序支持/ iPhone模拟器/用户/应用/
我排序“修改日期”,找到应用程序,我刚刚建成。
要查看SQLite文件,请查看Base和/或Core Data Editor。
特别是,核心数据编辑器以合理的方式呈现数据库。 –
有没有一种自由的方式来做到这一点? – barfoon
@barfoon Base有一个免费试用版(每次15分钟),但更自由的是弹出打开终端,导航到相同的目录,并运行SQLite3应用程序。在应用程序的Documents目录中,找到
您也可以使用Firefox的附加工具SQLite的经理(免费)。我使用它,它运作良好。
真棒的答案。一旦你下载了插件,并想出如何启动它,你可以使用'print(NSFileManager.defaultManager()。URLsForDirectory(.DocumentDirectory,inDomains:.UserDomainMask)'''打印你的数据库位置。然后,在插件中,当你想打开数据库时,你需要在Finder中启用隐藏文件夹。 – paulvs
不幸的是https://addons.mozilla.org/en-US/firefox/addon/sqlite-manager/与最新的Firefox不兼容。 –
也尝试sqlite数据库浏览器。它的自由并反映了这一事实。虽然非常有用!
cheers.bo
以下是完整的路径,显然是因为gerry3的回答改变
~/Library/Application Support/iPhone Simulator/<Simulator>/Applications/<ApplicationID>/Documents/<NAME>.sqlite
所以,正确的路径将是这样的:如果你正在使用iOS的10 &斯威夫特让它进入
~/Library/Application Support/iPhone Simulator/7.1-64/Applications/C1F3C2E5-987A-4DF7-91EF-955AE6E52621/Documents/TestApp.sqlite
你的AppDelegate.swift:
let container = NSPersistentContainer(name: "***")
print(container.persistentStoreDescriptions.first?.url)
然后你我看到类似的东西:
Optional(file:///Users/<SomeUser>/Library/Developer/CoreSimulator/Devices/956F0003-5DA4-4588-97C1-A9A83767F341/data/Containers/Data/Application/9765FDE1-6971-4706-987B-96FBD3F462BF/Library/Application%20Support/***.sqlite)
我创建了一个macOS应用程序来浏览你的核心数据内容。它隐藏了核心数据实现,就像您在使用SQLite浏览器时看到的一样。您也可以列出所有最新的运行应用程序和模拟器,使用它您可以轻松找到所需的应用程序。这里更多的信息:
http://www.microedition.biz/simMagnifier
它具有其他功能,如访问模拟器的文件夹,如文档,应用程序支持,等等。你可以NSUserDefaults的检查的内容了。
该应用不是免费的抱歉!但至少你有7天的试用期。
更新至此主题,iphone模拟器位置已移至Xcode7和Xcode8中的其他位置。现在是:
〜/资源库/开发/ CoreSimulator/...
的地方〜是你的主目录。
任何以前的解决方案仍然可以正常工作,但如果您使用以前的链接,则无法找到正确的文件夹。
可能的重复[有没有一个好的核心数据浏览工具?](http://stackoverflow.com/questions/1609683/is-there-a-good-core-data-browsing-tool-out-那么) – swiftBoy
在iOS 10+上,你可以看到在这个答案中使用解决方案:https://stackoverflow.com/a/43406516/468724 –