如何使用谓词编写复杂的核心数据查询

时间:2012-05-21 09:47:53

标签: iphone objective-c core-data

我正在使用Core Data,但是没有做任何复杂的查询而且完全丢失 - 来自SQL背景,因此需要帮助创建NSPredicate。

我的问题

我需要检索一个直接属于特定EntityManagedObject的Perspective(具有唯一名称)列表。

数据库概述

正如您所看到的,EntityManagedObject可以有许多EntityManagedObjects,并且可以有许多ObjectiveManagedObject。

因此,EntityManagedObject具有单个EntityManagedObject作为父级,而ObjectiveManagedObjective具有单个EntityManagedObject作为父级。

ObjectiveManagedObject有一个Perspective。 Perspective可以属于许多ObjectiveManagedObjects。

enter image description here

1 个答案:

答案 0 :(得分:1)

制作方法,

-(NSArray *) getEntityManagedObjectsWithParentEntity:(EntityManagedObject *) parentObject;

另一种方法,

-(NSArray *) getObjectiveManagedObjectsWithEntityManagedObjects:(NSArray *) entityManagedObjects;

然后,

-(NSArray *) getPerspectivesWithEntityManagedObject:(EntityManagedObject *) entityObject
{
   NSArray *objectiveManagedObjects = [self  getObjectiveManagedObjectsWithEntityManagedObjects: [self getEntityManagedObjectsWithParentEntity:entityObject] ];

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Objectives IN %@", objectiveManagedObjects];

}