2012-07-03 3 views
8

코어 데이터를 사용하고 sqlite 데이터베이스를로드하는 샘플 프로그램이 있습니다. 그리고,이 코드코어 데이터에서 특정 데이터를 선택하는 방법은 무엇입니까?

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); 
} 

이 코드는 잘 작동을 사용하여 모든 값을 표시하고 여기에 내 문제는 내가 특정 데이터/기록을 선택할 수 있다는 것입니다. 예 ID = 1 인 레코드를 선택하려고합니다.

고마워요!

+0

정답을 확인하시기 바랍니다) – Pierre

답변

16

요청 실행 전에 술어 (NSPredicate 포함)를 사용해야합니다. 그런

뭔가 :

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

감사합니다! 그것은 나를 위해 작동합니다 :) – 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

고마워요! :) – kimbebot

+0

환영합니다. 도움이된다면 upvote : D –

관련 문제