菜鸟教程小白 发表于 2022-12-13 06:23:05

ios - 通读我的应用程序的核心数据文件(.sqlite、.sqlite-wal)


                                            <p><p>我正在尝试在我正在开发的 iOS 应用程序中浏览 Core Data 编写的数据。 </p>

<p>应用运行一段时间后,我假设收集了一些数据,我现在希望查看数据并查看写入的内容。</p>

<p>我尝试通过从设备获取应用程序容器来获取和浏览 <code>.sqlite</code> 文件(<em>Xcode > Devices > myApp > Download Container...</em>)。</p>

<p>我得到了 db 文件,<code>myAppDB.sqlite</code>、<code>myAppDB.sqlite-shm</code> 和 <code>myAppDB.sqlite-wal</code>。 </p>

<p>当尝试查看它们时,似乎 <code>.sqlite</code> 是一个空表(除了一些通用的 CoreData/sqlite 东西),而 <code>-wal</code> 文件有所有的信息。</p>

<p>问题是我只能知道 <code>wal</code> 在使用 TextEdit 打开它时具有有用的数据,它无法以非常易读的方式显示它,并且当我尝试使用SQLite Manager 应用程序我警告说 <code>wal</code> 已加密,并要求我输入密码...</p>

<p>重要的是,我正在编写一个处理数据库的框架(模型文件和用于写入数据的代码在框架内),然后我让这个框架在我正在开发的应用程序中运行。这是我用来从框架内创建商店的代码(使用 <a href="https://github.com/magicalpanda/MagicalRecord" rel="noreferrer noopener nofollow">MagicalRecord</a> ):</p>

<pre><code>NSBundle *frameworkBundle = ];
;

NSURL *storeURL = [ URLByAppendingPathComponent:@&#34;myAppStoreDB.sqlite&#34;];
;
</code></pre>

<p><strong>更新:</strong>我设法用 <a href="https://github.com/ChristianKienle/Core-Data-Editor" rel="noreferrer noopener nofollow">Core-Data-Editor</a> 打开了 <code>sqlite</code> 文件。和 <a href="https://github.com/yepher/CoreDataUtility" rel="noreferrer noopener nofollow">CoreDataUtility</a>但它们都覆盖和删除 <code>.wal</code> 文件的内容,并显示一个空表...它确实有模型(实体名称/属性等)但没有数据。 </p>

<p>我的 <code>wal</code> 文件是 873KB,但是当我使用这两个工具之一打开 <code>sqlite</code> 时,它变成了 0Bytes...</p>

<p><strong>tl;dr</strong></p>

<p>如何浏览我正在开发的应用的 Core Data 编写的信息?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>好吧,由于某种原因,我不得不强制在我的商店中不使用 WAL(使用 <code>@"journal_mode":@"DELETE"</code> 解释为 <a href="https://developer.apple.com/library/mac/qa/qa1809/_index.html" rel="noreferrer noopener nofollow">here</a>)。</p>

<p>然后我只得到了没有 <code>smh</code> 和 <code>wal</code> 文件的 <code>.sqlite</code> 文件,并且能够打开它并使用2 个提到的工具(Core-Data-Editor 和 CoreDataUtility)。</p>

<p>我的猜测是,这与我从框架(创建 <code>moc</code>、创建实体、保存等)而不是从应用程序处理 CoreData 的事实有关。另一个猜测是它与我使用 <a href="https://github.com/magicalpanda/MagicalRecord" rel="noreferrer noopener nofollow">MagicalRecord</a> 的事实有关。 .</p>

<p>任何有关原因的见解将不胜感激...</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 通读我的应用程序的核心数据文件(.sqlite、.sqlite-wal),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/29598830/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/29598830/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 通读我的应用程序的核心数据文件(.sqlite、.sqlite-wal)