菜鸟教程小白 发表于 2022-12-12 10:47:53

ios - 核心数据,无反比关系


                                            <p><p>我正在努力消除代码库中的大量警告,形式如下:</p>

<pre><code>Entity.relationship should have an inverse.
</code></pre>

<p>一般来说,虽然我们的代码没有通过这些逆函数到达,但无论如何把它们放进去听起来是个好主意。</p>

<p>我的问题是我将如何做到这一点。</p>

<ol>
<li><p>我应该通过轻量级迁移进行这些更改吗?也就是说,我应该创建另一个 xcdatamodel 吗?</p></li>
<li><p>对于给定的数据模型,如果我们已经有多个版本/迁移怎么办。例如假设我们有 ReportsDataModel。在其下方是 ReportsDataModel1、ReportsDataModel2 和 ReportsDataModel3。似乎 XCode 7 在每个数据模型上都给我相同的警告。因此,如果我在向 ReportsDataModel4 的轻量级迁移中修复它们,它似乎不会摆脱以前的警告。 </p></li>
</ol>

<p>解决此问题的推荐方法是什么?</p>

<p>-阿琼</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>首先,您应该实现反向关系是正确的,因为 Xcode 需要它们。这是一个很好的数据库实践,如果您不使用多余的关系,您几乎可以忽略它们。</p>

<p>是的,您应该能够执行<strong>轻量级迁移</strong>,即创建新的数据模型并让 Xcode 推断更改。 <a href="https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/vmLightweightMigration.html" rel="noreferrer noopener nofollow">Here, Apple states</a>轻量级迁移支持添加关系。</p>

<p>关于您的第二个问题,是的,创建另一个数据模型实际上并不能解决旧模型中的警告。您必须将旧模型保留在 Xcode 中,以便它可以计算轻量级迁移过程。如果您删除模型并且用户从使用该模型的旧版本更新,他们的数据将被破坏。 (但是,如果您尚未发布具有特定数据模型的应用程序版本,则可以删除该数据模型。)</p>

<p>不过,你可以试试<a href="https://stackoverflow.com/questions/8221813/how-to-disable-no-inverse-relationship-warning-for-coredata-in-xcode-4-2" rel="noreferrer noopener nofollow">suppressing the inverse relationship warning entirely</a> .</p>

<ol>
<li>在 Xcode 中,单击您的项目文件。</li>
<li>点击<code>build设置</code>标签。</li>
<li>搜索 <code>MOMC</code>。</li>
<li>将 <code>Suppress momc warnings on missing inverse relationships</code> 设置为 Yes。</li>
</ol>

<p><strong>编辑</strong> 关于只删除旧型号的警告:<a href="https://stackoverflow.com/questions/8730872" rel="noreferrer noopener nofollow">This question</a>建议您可以将旧数据模型移出 Xcode 并将其放置在其他地方,并向构建阶段添加复制文件操作以在编译时将文件复制回。这样,文件及其无关的警告就不会妨碍您。抱歉,没有更“hacky”的解决方案。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 核心数据,无反比关系,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/35856237/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/35856237/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 核心数据,无反比关系