2014-04-04 4 views
0

journalHeaderID 필드가있는 관리 대상 개체가 있습니다. NSLog를 통해 해당 항목이 핵심 데이터에 올바르게 배치되고 있음을 알 수 있습니다. 보기와 관련된 항목으로 필터링해야하는 데이터를 표시하려면자릿수 문제

이 데이터의 내보기를 구성 할 때 관련 ID 배열을 만들었습니다. 내가 코드를 실행할 때, 비록 내가 거기에 있다는 것을 알았지 만 나는 결과를 얻지 못한다.

이 술어는 사용하기에 적합하다고 생각했지만 올바르게 작동하지 않아서 이유가 확실하지 않습니다.

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"journalHeaderID IN %@", idsToList]; 

여기는 술어로 전달되는 배열이며 NSNumber와 NSString 모두로 시도했습니다.

<__NSArrayM 0xa01af70>(
    800555, 
    800552, 
    800685, 
    803592, 
    803593 
) 


NSFetchRequest *request = [NSFetchRequest new]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"JournalHeader" inManagedObjectContext:[[BWCoreDataHelper sharedInstance] managedObjectContext]]; 
[request setEntity:entity]; 
[request setFetchBatchSize:20]; 

if(idsToList.count > 0) { 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"journalHeaderID IN %@", idsToList]; 
    [request setPredicate:predicate]; 
} 

NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"headerCreateDate" ascending:NO]; 
[request setSortDescriptors:@[sort]]; 

NSFetchedResultsController *fetchedResults = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:[[BWCoreDataHelper sharedInstance] managedObjectContext] sectionNameKeyPath:nil cacheName:nil]; 

self.fetchedResultsController = fetchedResults; 
self.fetchedResultsController.delegate = self; 
+1

어떤 결과가 나오나요? Apple docs는 "SQL IN 연산과 동일하게, 왼편은 오른쪽에 지정된 콜렉션에 나타나야합니다. 예를 들어, IN { 'Ben', 'Melissa', 'Nick'}과 같은 이름입니다. collection은 배열, 집합 또는 사전이 될 수 있습니다. 사전의 경우 값이 사용됩니다. " – RobP

+1

배열의 데이터 유형이 데이터 모델과 일치해야합니다. 숫자 또는 문자열입니까? – Wain

+0

performFetch를 호출하지 않는 것 같습니다. –

답변

0

어떤 결과를 얻었는지에 대한 정보가 부족하거나 위임 메시지를받는 경우에도 하나의 제안이 있습니다.

NSFetchedResultsController에서 - (void)performFetch:(NSFetchRequest *)fetch을 불러 오십시오.

이미이 작업을 수행 중이라면 분명하지 않습니다.