菜鸟教程小白 发表于 2022-12-13 06:26:57

iOS核心数据如何从不同实体访问单个实体


                                            <p><p>我有一个这样的模型:</p>

<p> <img src="/image/vU7LH.png" alt="enter image description here"/> </p>

<p>如何使"file"实体可以被 Entity1 或 Entity2(或 Items)引用</p>

<p>基本上,我有许多带有 id 的"file"。如果对"file"进行了更改(例如更改了名称),那么当任何实体引用该文件时,它应该具有更新的信息......而不必在每个实体中进行更新。</p>

<p>有没有办法通过编辑器做到这一点?还是我必须编写代码来首先获取我正在寻找的文件 id,然后在获得文件 id 后,使用我刚刚获得的 id 对"file"实体进行单独的请求?</p>

<p>在 sql 中,我可以从任何表进行左连接。如果可以在谓词中执行,那也可以,只是不确定如何。</p>

<p>编辑:</p>

<p>所以我更新了我的模型,现在它看起来像这样:</p>

<p> <img src="/image/x8Mkn.png" alt="enter image description here"/> </p>

<p>我为"file"添加了数据,然后为 Entity1 和 Entity2 添加了数据</p>

<p>我有用于显示文件的代码,然后是用于显示实体的代码。
这是我正在做的一个片段:</p>

<pre><code>NSEntityDescription *entityDescription = [NSEntityDescription
                                          entityForName:@&#34;Entity1&#34; inManagedObjectContext:context];

NSFetchRequest *request = [ init];
;

NSError *error;
NSArray *entityArray = ;

[entityArray enumerateObjectsUsingBlock:^(Entity1 *entity1, NSUInteger idx, BOOL *stop) {
    NSLog(@&#34;entity1: %@&#34;, entity1.name);
}];
</code></pre>

<p>我现在如何从文件中获取 Entity1 的“名称”?让我们假设名称字段是一个匹配字段。我需要在代码中添加什么来提取"file"?这是假设在“Entity1”当然存在之前"file"就在那里。</p>

<p>我目前正在运行另一种类似于“getFileByName:(NSString *)name”的方法,并使用谓词执行单独的请求。这行得通,但我认为有更好的方法。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您可以简单地为想要引用它们的任何其他实体创建与 <code>Files</code> 实体的关系(具有您想要的基数)。<br/></p>

<p>请记住,虽然 <code>Files</code>.<code>id</code> 是唯一的,但 CoreData 提供的唯一性是 <code>objectID</code> ==> 您可以替换 <code>id</code> 引用文件 <code>objectID</code> 并获得相同的功能。<br/></p>

<p>一些建议:<br/></p>

<ol>
<li>不要使用<code>id</code>作为属性名,它是Objective-C中的保留字</li>
<li>不要以复数形式命名您的实体(例如 <code>Files</code> --> <code>File</code>)它们是对象定义或类(不要用术语来思考表,尽管这可能是底层结构)</li>
</ol></p>
                                   
                                                <p style="font-size: 20px;">关于iOS核心数据如何从不同实体访问单个实体,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/21742933/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/21742933/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS核心数据如何从不同实体访问单个实体