2012-07-03 9 views
8

Ich habe ein Beispielprogramm, das Core Data verwendet und eine SQLite-Datenbank darin lädt. Und ich bin die Anzeige alle Werte mit diesem CodeWie bestimmte Daten in Core Data ausgewählt werden?

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Name" 
              inManagedObjectContext:context]; 
[fetchRequest setEntity:entity]; 
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error]; 

for (Name *name in fetchedObjects) { 
    NSLog(@"ID: %@", name.nameId); 
    NSLog(@"First Name: %@", name.first); 
    NSLog(@"Middle Name: %@", name.middle); 
    NSLog(@"Last Name: %@", name.last); 
} 

Dieser Code funktioniert gut, mein Problem hier ist, dass ich keine bestimmte Daten/Datensatz auswählen können. Beispiel Ich möchte den Datensatz mit der ID = 1 auswählen.

Vielen Dank!

+0

Bitte überprüfen Sie die richtige Antwort unten;) – Pierre

Antwort

16

Sie müssen Prädikate (mit NSPredate) vor der Ausführung Ihrer Anfrage verwenden.

So etwas:

NSPredicate *predicateID = [NSPredicate predicateWithFormat:@"nameID == %d",-1]; 
[fetchRequest setPredicate:predicateID]; 
+0

Dank! Es funktioniert für mich :) – kimbebot

10
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Name" 
              inManagedObjectContext:context]; 
[fetchRequest setEntity:entity]; 

//Add following method to your code. this will help you to get desired result. 
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"yourColumnID == %@", yourID]]; 

NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error]; 

for (Name *name in fetchedObjects) { 
    NSLog(@"ID: %@", name.nameId); 
    NSLog(@"First Name: %@", name.first); 
    NSLog(@"Middle Name: %@", name.middle); 
    NSLog(@"Last Name: %@", name.last); 
} 
+0

Danke dafür! :) – kimbebot

+0

Willkommen. Wenn es dir geholfen hat, kannst du: D –