2010-06-03 4 views
0

iPad 앱을 프로그래밍하는 동안 "동적"조건자를 사용하는 fetchedResultsController를 사용하는 데 문제가 있습니다. 그것은 술어에 대한 변경 사항이 무시당하는 것 같습니다. 술어가 어떻게 바뀌더라도 항상 첫 번째 가져 오기 결과를 얻습니다.iPad : CoreData FetchedRequest가 술어의 변경을 무시합니다.

동일한 코드가 iphone-env (3.1.x)에서 문제없이 실행됩니다 !!

샘플 :

- (void)performSearch:(NSString *)searchText { 
    self.displaySearchResults = TRUE; 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"searchWords contains[cd] %@", searchText]; 
    [self.fetchedSearchResultsController.fetchRequest setPredicate:predicate]; 

    NSError *error = nil; 
    if (![self.fetchedSearchResultsController performFetch:&error]) { 
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
    abort(); 
    } 

    if(deviceIsIPad) { 
    [self showSearchResults]; 
    } 
    else { 
    [cookBookOverview reloadData]; 
    } 
} 

할 수있는 사람의 도움이 PLZ?

BTW : 변명 내 ;-) 고통스러운 영어

당신은 당신이 조건을 변경하거나 fetchRequest

// clear cache 
[NSFetchedResultsController deleteCacheWithName:@"CacheName"]; 
+0

나는 당신이 당신의 fetchedSearchResultsController 만드는 방법을 볼 수있는 모든 시간 캐시를 지워야합니다 (그래서 나는 무엇을 볼 수 – smountcastle

+0

빙고를 호출 할 때마다 해당 캐시를 지우는 것이 내 문제를 해결 한 것 같습니다! THX A LOT ... – Michael

답변

4
사용중인 cacheName)? 캐시 일관성을 테스트 할 때 술어가 고려되지 않으므로 캐시를 재사용 할 수 있습니다. deleteCacheWithName을 사용해보십시오 : 캐시를 지우려면 setPredicate :