1

我是使用 CoreData 的新手,我正在尝试了解如何对表执行查询。我可以使用提取请求从表中提取所有记录,但我正在寻找一个子集。是否有捷径可寻?

谢谢,豪伊

4

3 回答 3

5

你看过谓词吗?

另外,购买Marcus Zarra 关于核心数据的书

于 2010-01-04T17:06:29.560 回答
3

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

于 2010-01-04T21:53:26.610 回答
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];
于 2010-01-05T01:12:22.670 回答