2012-07-03 5 views
8

Tôi có một chương trình mẫu sử dụng Dữ liệu cốt lõi và tải một cơ sở dữ liệu sqlite trong đó. Và tôi hiển thị tất cả các giá trị sử dụng mã nàyLàm cách nào để chọn dữ liệu cụ thể trong Dữ liệu chính?

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

Mã này hoạt động tốt, vấn đề của tôi ở đây là tôi không thể chọn dữ liệu/bản ghi cụ thể. Ví dụ tôi muốn chọn bản ghi với ID = 1.

Cảm ơn!

+0

Vui lòng kiểm tra lại câu trả lời đúng;) – Pierre

Trả lời

16

Bạn phải sử dụng các vị từ (có NSPredicate) trước khi thực hiện yêu cầu của bạn.

Something như thế:

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

Cảm ơn! Nó hoạt động cho tôi :) – 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

Cảm ơn vì điều này! :) – kimbebot

+0

Chào mừng bạn. Nếu nó giúp bạn có thể upvote: D –