菜鸟教程小白 发表于 2022-12-13 17:10:09

ios - 如何为一对多关系正确配置 Core Data 数据模型和 NSManagedObject?


                                            <p><p>如何正确配置 CoreData 数据模型和 NSManagedObjects 的一对多关系?
我觉得我错误地配置了 xcdatamodeld 文件,但我找不到问题所在。
我生成了一个新的单 View 项目,并选择了 CoreData。下面的代码很简单,我可以解释问题。</p>

<pre><code>Parent *parent = ];

Child *child = ];   

child.parent = parent;
</code></pre>

<p>当我打电话时</p>

<pre><code>;
</code></pre>

<p>由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-: unrecognized selector sent to instance 0x7450370”</p>

<p>当我打电话时</p>

<pre><code>NSMutableSet *children = ;
</code></pre>

<p>'NSManagedObjects of entity 'Parent' 不支持 -mutableSetValueForKey: for the property 'children'' </p>

<p>此外,似乎没有生成任何生成的添加/删除方法来修改子集合,例如 </p>

<pre><code>- (void)addChildObject:(Child *)value;
- (void)removeChildObject:(Child *)value;
</code></pre>

<h2>xcdatamodeld</h2>

<p>实体</p>

<ul>
<li><p> child <br/>
关系:父<br/>
目的地:家长<br/>
逆: child </p></li>
<li><p>家长<br/>
关系:子女<br/>
目的地: child <br/>
逆:父 </p></li>
<li><p>配置(默认)<br/>
实体: child <br/>
类: child </p>

<p>实体: parent <br/>
类(class):家长</p></li>
</ul>

<h2>父.h</h2>

<pre><code>@interface Parent : NSManagedObject
@property (nonatomic, retain) NSSet *children;
@end
</code></pre>

<h2> parent .m</h2>

<pre><code>@implementation Parent
@dynamic children;
@end
</code></pre>

<h2> child .h</h2>

<pre><code>@interface Child : NSManagedObject
@property (nonatomic, retain) NSManagedObject *parent;
@end
</code></pre>

<h2> child .m</h2>

<pre><code>@implementation Child
@dynamic parent;
@end
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您应该在 Xcode 中使用“Editor -> Create NSManagedObject Subclass...”来创建托管对象子类文件。这可确保您拥有正确的访问器功能。另一个优点是 Xcode 知道访问器函数并自动完成。</p>

<p>还要确保 <code>children</code> 关系在 Core Data Inspector 中定义为“To-Many 关系”。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何为一对多关系正确配置 Core Data 数据模型和 NSManagedObject?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/12987403/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/12987403/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何为一对多关系正确配置 Core Data 数据模型和 NSManagedObject?