iPhone CoreData Queries - PullRequest
       32

iPhone CoreData Queries

1 голос
/ 04 января 2010

Я новичок в использовании CoreData и пытаюсь понять, как выполнить запрос к таблице. Я могу использовать запрос на выборку, чтобы извлечь все записи из таблицы, но я ищу подмножество. Есть ли простой способ сделать это?

Спасибо, Howie

Ответы [ 3 ]

5 голосов
/ 04 января 2010

Вы смотрели в Предикаты ?

Кроме того, купите книгу Маркуса Зарры о базовых данных .

3 голосов
/ 05 января 2010

Вы можете добавить NSPredicate к NSFetchRequest, чтобы отфильтровать возвращаемые записи. Вы также можете управлять тем, что заполняется в возвращаемых объектах (только заполнять свойства, включать отношения, ничего не заполнять, просто возвращать счет и т. Д.), Но, как отметил Питер, Core Data - это объектная иерархия и API модели, которые просто хранятся в базу данных. Намного легче работать, когда вы смотрите на это из этого POV.

1 голос
/ 05 января 2010

Вы должны сделать что-то вроде:

// 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];
...