2011-03-03 73 views
0

我有一个实体,它与另一个实体有许多关系。在第二个中,我有一个名为“versionNumber”的属性。我对实体类型A有一个对象,并且我想获取具有最大(最大)versionNumber的相关实体B.(核心数据)获取具有最大属性的特定实体

我有以下的,但返回我过去对实体B的所有记录获得的结果,而不是对涉及A型的对象

NSInteger vNumber = 0; 

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:DPA_VERSION_KEY inManagedObjectContext:[self managedObjectContext]]; 
[request setEntity:entity]; 

// Specify that the request should return dictionaries. 
[request setResultType:NSDictionaryResultType]; 

NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:VERSION_NUMBER_KEY]; 
NSExpression *maxNumberExpression = [NSExpression expressionForFunction:@"max:" 
                   arguments:[NSArray arrayWithObject:keyPathExpression]]; 

NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc] init]; 
[expressionDescription setName:@"maxNumber"]; 
[expressionDescription setExpression:maxNumberExpression]; 
[expressionDescription setExpressionResultType:NSDecimalAttributeType]; 






[request setPropertiesToFetch:[NSArray arrayWithObject:expressionDescription]]; 

// Execute the fetch. 
NSError *error = nil; 
NSArray *objects = [[self managedObjectContext] executeFetchRequest:request error:&error]; 
if (objects == nil) { 
    // Handle the error. 
} 
else { 
    if ([objects count] > 0) { 
     vNumber = [[[objects objectAtIndex:0] valueForKey:@"maxNumber"] integerValue] +1; 
    } 
} 

[expressionDescription release]; 
[request release]; 

return vNumber; 

我有一个想法,但我hadn具体的实体”不能实现它。我必须问SELF哪一个是我的对象A来完成它与VVersions(实体B)的关系。 感谢您的帮助。

G.

+0

Uhmmm,肯定没问题的关系的乙对象。 – TechZen 2011-03-03 04:09:59

+0

??????????????? – Gustavo 2011-03-03 08:46:03

回答

0

设置一个谓词来请求限制为仅谁拥有A.

[request setPredicate:[NSPredicate predicateWithFormat:@"myA == %@", myA]; 
相关问题