0

다양한 이유로 (결국 요약 됨) NSManagedObjects을 반환하기 위해 NSFetchedResultsController을 사용하여 실험하고 있습니다.NSPredicate를 사용하여 self.items에 액세스

특히 Person에는 핵심 데이터 관계 차량을 사용하여 모델링 한 Cars이 많습니다. Person에 다른 메소드를 추가하여 self.cars와 동일한 자동차를 반환하지만 FRC를 사용하려고합니다.

는 나는 단지 차 car.person == self을 찾을 수 있도록 설계되었습니다 내 NSPredicate와 기본적인 오류를 만드는 중이라서 생각 :

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Car"]; 
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"dateAdded" ascending:YES]; 


NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
    [fetchRequest setSortDescriptors:sortDescriptors]; 

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"person == '%@'", self]; 
    [fetchRequest setPredicate:predicate]; 

    NSFetchedResultsController *controller = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest 
                managedObjectContext:self.managedObjectContext 
                sectionNameKeyPath:nil 
                cacheName:nil]; 
    NSError *error; 
    BOOL success = [controller performFetch:&error]; 

어떤 자동차가 전혀 반환되고있다. 내 술어가 올바르지 않습니까?

사이드 노트 - 왜 self.cars를 사용하지 않으시겠습니까? 내가 말하는 것처럼 이것은 실험입니다. 나는 NSFetchedResultsController의 지속적인 캐시로부터 이익을 얻고 싶습니다.

+1

이 술어에 작은 따옴표를 제거 시도해야한다, 잘못입니다. –

+0

그랬습니다. 주의를 기울여 답변을 추가 하시겠습니까? –

+0

답변을 추가했습니다. –

답변

1

술어의 작은 따옴표는

[NSPredicate predicateWithFormat:@"person == %@", self]; 
1

예에서 "Person" 개체를 가져 오는 중입니다. 어쩌면 "Car" 오브젝트를 대신 가져오고 싶습니까?

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Car"]; 
+0

죄송합니다, 그것은 예제에서 실수였습니다 - 나는 그것을 정정했습니다. 감사. –

관련 문제