iPhone CoreData查询

时间:2010-01-04 16:56:00

标签: iphone cocoa core-data fetch

我是使用CoreData的新手,我正在尝试了解如何在表上执行查询。我可以使用获取请求从表中提取所有记录,但我正在寻找一个子集。有一个简单的方法吗?

谢谢, 豪伊

3 个答案:

答案 0 :(得分:5)

你有没有看过Predicates

另外,购买Marcus Zarra's book on Core Data

答案 1 :(得分:3)

您可以向NSPredicate添加NSFetchRequest以过滤返回的记录。您还可以控制返回对象中填充的内容(仅填充属性,包含关系,不填充任何内容,只返回计数等),但正如Peter所指出的,Core Data是一个对象层次结构和模型API,恰好存储到数据库。当你从那个POV看它时,它会更容易使用。

答案 2 :(得分:1)

您必须执行以下操作:

// Init your fetchRequest
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"entityName" inManagedObjectContext:yourManagedObjectContext];

// create the relation between request and the created entity
[fetchRequest setEntity:entityDescription]; 

// Set your predicate for this request
// For more info take a look at NSPredicate Class Reference
// http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Reference/Foundation/Classes/NSPredicate_Class/Reference/NSPredicate.html
[fetchRequest setPredicate:somePredicate];

// Pushing the results into a mutable array
NSMutableArray *mutableFetchResults = [[yourManagedObjectContext executeFetchRequest:fetchRequest error:&error] mutableCopy];

[fetchRequest release];