2012-08-08 48 views
0

我需要获取值为xxx的特定托管实体。如何使用NSFetchRequest获取特定值

我的管理对象是

Subscriptions : NSManagedObject{ 
    @property (nonatomic, retain) NSString * name; 
    @property (nonatomic, retain) NSNumber * id; 
    @property (nonatomic, retain) NSNumber * category; 
    @property (nonatomic, retain) NSNumber * frequency; 
    @property (nonatomic, retain) NSNumber * alertType; 
} 

我需要获取只有一个实体,其中名为“XXX”。 (只有一个实体,其中名称是xxx) 我还需要获取所有实体的类别为1.

我该如何使用NSFetchRequest执行此操作。我知道如何使用NSFetchedResultsController获取实体的所有实体值,但我只想获取名称为xxx的一个实体值。

回答

0

假设你有一个NSManagedObjectContext *context,则:

NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease]; //Note don't use autorelease if you're using ARC 
request.entity = [NSEntityDescription entityForName:@"Subscriptions" inManagedObjectContext:context]; 
NSString *someName = @"xxx"; 
request.predicate = [NSPredicate predicateWithFormat:@"name ==[c] %@", someName]; //[c] means case insensitive 
NSArray *result = [context executeFetchRequest:request error:nil]; 

结果数组将包含所有返回的结果,将是Subscriptions类型。如果谓词仅匹配一个项目,则只有一个结果,如果匹配无,则该阵列将被初始化,但其count属性将为0.您可以查看NSPredicate Class Reference以及如何将它与CoreData一起使用。

+0

非常感谢您的宝贵意见。 – Anand 2012-08-09 10:50:32