mic*_*090 2 sqlite ios ios-simulator cordova
我使用sqlite插件在xCode(使用PhoneGap)上创建了一个iPad应用程序,存储了数据,然后当我想查看存储的数据时,找不到保存位置。根据我的在线研究,它应该位于/ Library / Developer / CoreSimulator / Device下
但是,当我导航到/ CoreSimulator文件时,没有看到子文件夹“ / Device”,只是“ / Profiles / Runtimes”?
当我重新打开该应用程序并想查看我存储的数据时,我也看不到它们。
小智 6
这是我的应用程序的文件夹:
/Users/***/Library/Developer/CoreSimulator/Devices/4420949E-AD14-4A4F-9153-53891734BEB9/data/Containers/Data/Application/0A18183F-2CF6-4D72-938D-DF59CFA48CCF
您可以通过以下代码找到您的应用程序文件夹:
NSString *strPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
或者只是添加一个插件:NCSimulatorPlugin
let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
var docsDir = dirPaths[0]
print(docsDir)
Run Code Online (Sandbox Code Playgroud)
获取在调试器中打印的路径,将其复制,打开查找器,然后按Cmd + Shift + G。转到文件夹对话框将打开并粘贴路径,然后按Enter。您将导航到该文件夹。在项目中创建的所有文档都将显示在该文件夹中,包括.sqlite文件。不要尝试手动导航到该文件夹。您可能正在查看错误的文件夹。
当每次Xcode打印不同的路径时,也不必担心。从Xcode 6开始带来的变化。不知道为什么。但是您的文件(那些文件)可能会保持更新。
独立应用程序
从 Swift 4+ 开始,在某处添加一个断点来停止代码,然后在控制台中:
po FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last!
Run Code Online (Sandbox Code Playgroud)
然后您可以在子目录之一中找到一个 sqlite 文件。它可能会有所不同,具体取决于 iOS 版本。
如果您使用的是应用程序组(或独立应用程序的替代方法)
如果多个应用之间共享数据,则上述方法不起作用。但如果你只是没有找到 sqlite 文件,你也可以按照这个方法。
您可以让 Xcode 打印路径:
Product > Scheme > Edit Scheme > Run > Arguments-com.apple.CoreData.SQLDebug 1参数下次启动应用程序时,您应该在日志输出中看到类似以下内容:
CoreData: annotation: Connecting to sqlite database file at /Users/***/Library/Developer/CoreSimulator/Devices/****/data/Containers/****/YourAppName.sqlite
Run Code Online (Sandbox Code Playgroud)
作为奖励,您还将获得一堆其他核心数据调试信息。
我在使用核心数据时遇到同样的问题,
我如何通过以下步骤解决问题:
在控制台中打印我的 sqlite 文件的 url
复制网址
打开取景器并按 cmd + shift + G
粘贴网址并按 Enter 键
然后就会显示sql文件。
我没有使用PhoneGap,但是如果你可以从SDK打印sql文件url,
您也可以找到该文件。
| 归档时间: |
|
| 查看次数: |
4559 次 |
| 最近记录: |