2012-05-16 1 views
7

특정 값으로 엔티티의 속성에서 데이터를 가져 오도록 가져 오기 요청을 설정하려면 어떻게해야합니까? 이것은 전에 사용했던 기본 코드입니다.entity.attribute == @ "somevalue"에 대한 요청 가져 오기

-(void)fetchResults 
{ 
    NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:self.entityDescription.name]; 
    NSString *cacheName = [self.entityDescription.name stringByAppendingString:@"Cache"]; 

    // predicate code 
    if (self.predicate != nil) { 
     [fetchRequest setPredicate:self.predicate]; 
    } 
    // end of predicate code 

    NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]; 
    [fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 

    self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:cacheName]; 

    BOOL success; 
    NSError *error; 
    success = [self.fetchedResultsController performFetch:&error]; 
    if (!success) 
    { 
     NSLog(@"%@", [error localizedDescription]); 
    } 
} 

나는이 페이지를 찾고 있었어요 : http://bit.ly/KevYwR이 올바른 방향인가?

NSPredicate을 사용해야하나요 아니면 사용하지 않아도됩니까? NSFetchRequest 설정 등 어떤 도움, 올바른 방향으로 지점,

답변

19

에 대한

덕분에 SQL 언어의 SELECT statetement에 해당합니다. 다음은 간단한 예

:

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
[request setEntity:[NSEntityDescription entityForName:@"EntityName" inManagedObjectContext:moc]]; 

NSError *error = nil; 
NSArray *results = [moc executeFetchRequest:request error:&error]; 

// error handling code 

배열 results는 SQLite는 파일에 포함 된 모든 관리 객체를 포함한다. 특정 오브젝트 (또는 더 많은 오브젝트)를 잡으려면 해당 요청과 함께 술어를 사용해야합니다. 예를 들어,이 경우에 results

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"attribute == %@", @"Some Value"]; 
[request setPredicate:predicate]; 

는 속성 Some Value 같다 개체를 포함한다. 술어를 설정하는 것은 WHERE 절을 SQL 문에 넣는 것과 같습니다.

참고

나는 엔티티의 이름 EntityName이고 그것의 속성은 String 형이다 attribute라는 것을 가정합니다.

자세한 내용은 Core Data 프로그래밍 가이드 및 NSFecthRequest 클래스 참조를 읽어 보시기 바랍니다.

  • https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CoreDataFramework/Classes/NSFetchRequest_Class/NSFetchRequest.html

    http://developer.apple.com/library/iOS/#documentation/Cocoa/Conceptual/CoreData/cdProgrammingGuide.html

    • 는 도움이되기를 바랍니다.

    관련 문제