我是使用 CoreData 的新手,我正在尝试了解如何对表执行查询。我可以使用提取请求从表中提取所有记录,但我正在寻找一个子集。是否有捷径可寻?
谢谢,豪伊
你看过谓词吗?
另外,购买Marcus Zarra 关于核心数据的书。
您可以添加一个NSPredicate
来NSFetchRequest
过滤返回的记录。您还可以控制返回的对象中填充的内容(仅填充属性、包含关系、不填充任何内容、仅返回计数等),但正如 Peter 指出的那样,Core Data 是一个对象层次结构和模型 API,恰好存储到数据库。当你从那个 POV 看它时,它更容易使用。
您必须执行以下操作:
// 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];