使用密钥

时间:2016-05-24 17:07:58

标签: ios core-data

我有以下数据模型关系(括号中的属性)

日(日期)----------->>事件(日期,姓名)

活动之间存在一对多的关系。没有反比关系(即事件实体没有引用

首先创建事件并保存。这一天将在稍后创建。

检索实体是否有办法让核心数据同时检索与该日期相同的每个事件?我搜索了其他一些问题,但所有这些问题都包括在创建时手动设置事件

2 个答案:

答案 0 :(得分:0)

您使用CoreData查询NSFetchRequestinitWithEntityName(_:)只能查询一个特定的实体类型(因此NSFetchRequest初始值设定项)。如果您没有在两个实体之间设置关系,则无法使用单个NSPredicate实例检索这两个实例(您可以使用相同的date,前提是您拥有relationshipKeyPathsForPrefetching 1}}两个属性。

话虽如此,正如其他问题的答案可能表明的那样,如果您有关系集,则可以将NSFetchRequest实体上的属性returnsObjectsAsFaults设置为您的关系密钥来获取获取初始实体时关系的实体。假设您的目标是避免多次访问数据库,您可能还需要考虑将false设置为<select ng-disabled="currentQuestion.id" ng-change="loadTopics()" class="detail-subject-select browser-default" ng-model="currentQuestion.SubjectId" ng-options="value as key for (key, value) in { 'K8-English': 1, 'K8-Math': 2 }" > <option disabled="disabled" value="" >Choose a Subject</option> </select>(仅当您拥有相对较少的对象时才这样做。)

答案 1 :(得分:0)

正如查尔斯所说,只需提出两个获取请求。第一个请求检索,然后第二个请求检索同一日期的事件

但是,我要做的是建立反向关系并改变对象创建的时间。创建事件时,如果没有对象将其链接到,则同时创建新的对象。如果您这样做,那么您可以自行获取,并且可以通过关系自动获取事件