2012-05-21 31 views
1

我正在使用核心數據,但沒有做任何複雜的查詢,完全丟失 - 來自SQL背景,所以需要幫助創建一個NSPredicate。如何使用謂詞編碼複雜的核心數據查詢

我的問題

我需要檢索透視圖的列表(具有唯一的名稱),這在-直接屬於特定EntityManagedObject。

概述數據庫

的正如你可以看到EntityManagedObject可以有很多EntityManagedObjects,可以有很多ObjectiveManagedObject的。

EntityManagedObject因此具有一個EntityManagedObject作爲父級,而ObjectiveManagedObjective具有一個EntityManagedObject作爲父級。

ObjectiveManagedObject有一個Perspective。透視可以屬於許多ObjectiveManagedObjects。

enter image description here

回答

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]; 

}