我是使用CoreData的新手,我正在尝试了解如何在表上执行查询。我可以使用获取请求从表中提取所有记录,但我正在寻找一个子集。有一个简单的方法吗?
谢谢, 豪伊
答案 0 :(得分:5)
你有没有看过Predicates?
答案 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];