iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – 在哪里可以找到一个核心数据对多关系的好例子?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

有没有人有教程或源代码显示一个多对多关系正在使用,用户在哪里添加元素?我只想看看,因为阅读它没有太多的帮助. 人们经常被许多关系困惑,因为一个实体将关系表示为一个集合,而另一个实体将其表示为单个对象.采取以下实体: EntityA{ name:string bees<-->>EntityB.a } EntityB{ name:string a<<-->Entity
有没有人有教程或源代码显示一个多对多关系正在使用,用户在哪里添加元素?我只想看看,因为阅读它没有太多的帮助.

解决方法

人们经常被许多关系困惑,因为一个实体将关系表示为一个集合,而另一个实体将其表示为单个对象.采取以下实体:

EntityA{
    name:string
    bees<-->>EntityB.a
}

EntityB{
    name:string
    a<<-->EntityA.bees
}

在EntityA中,关系蜜蜂是一组,因为关系中可能有很多EntityB对象.所以,使用Key-Value编码,你将不得不使用mutableSetForKey来访问关系:扩展所有内容以查看详细信息:

NSMutableSet *muteSet=[anEntityAObj mutableSETVALueForKey:@"bees"];
[muteSet addObject:aNewBObj];
[anEntityAObj SETVALueForKey:@"bees"];

…或更紧凑:

[[anEntityAObj mutableSETVALueForKey:@"bees"] addObject:aNewBObj];

但是,如果您从EntityB方面设置,则只需添加单个对象即可直接使用SETVALueForKey:

[anEntityBObj SETVALueForKey:anEntityAObj];

那就是使用通用的NsmanagedObject实例来表示你的实体.如果您创建自定义子类,那么您有属性方法来为您设置:

[anEntityAObj addBeesObject:anEntityBObj];
anEntityBObj.a=anEntityAObj;

还要记住,通过管理对象,将关系定义为相对的一边自动设置为对方,并以相同的方式删除工作.

更新

您不会在属性中创建关系,在本例中为名称,而是与对象(在本例中为Person实体/类的实例).每个Person对象与其他所有Person对象完全分离,即使它们的name属性中的值相同.

您必须获得对任何特定Parent对象的引用.如果您刚刚插入了一个新的父对象,那么您已经有了它的引用.如果已经插入/持久化,那么您将创建一个带有谓词的fetch,该谓词将返回正确的对象.一旦你拥有正确的父对象,你只需要添加时间对象的关系.

所以,如果你的实体看起来像这样的伪代码

Parent{
    name:string
    times<-->>Time.parent
}

Time{
    theTime:date
    parent<<-->Parent.times
}

…并且您正在使用通用的NsmanagedObjects来设置您的实体,您可以设置现有的Parent对象和新的Time对象之间的关系,如下所示:

NsmanagedObject *exisTingParent= //... results of a fetch
    NsmanagedObject *newTime=[NSEntityDescription insertNewObjectForEntityForName:@"Time" inManagedObjectContext:self.moc];
    [newTime SETVALue:[NSDate date] forKey:@"theTime"];
    [newTime SETVALue:exisTingParent forKey:@"parent"];

请注意,如果从Time对象设置关系,则可以使用SETVALue:ForKey:因为从Time对象的角度来看,关系只是一个对象.

一旦您开始思对象而不是数据库,这真的很简单.即使与同一实体/类的其他对象共享属性,在上下文中插入的每个对象都是唯一的.这就是为什么您可以设置特定对象之间的关系,而不必担心存储在其属性中的值.

大佬总结

以上是大佬教程为你收集整理的iphone – 在哪里可以找到一个核心数据对多关系的好例子?全部内容,希望文章能够帮你解决iphone – 在哪里可以找到一个核心数据对多关系的好例子?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。