2

매개 변수에 NSPredicate이라는 세 컴퓨터 전 objectID를 사용하는 NSFetchRequestController을 설치했습니다. 내가 설정을 일단NSFetchedResultsController, NSFetchRequest를 수정 하시겠습니까?

NSManagedObjectContext *moc = [[self managedDocument] managedObjectContext]; 
[self setFetchedResultsController:[[NSFetchedResultsController alloc]initWithFetchRequest:fRequest 
                    managedObjectContext:moc 
                     sectionNameKeyPath:nil 
                       cacheName:nil]]; 

내 질문은 내 NSFetchedResultsController 새로운 데이터가 데이터베이스에있는대로 컨트롤러에 의해 사용되는 NSFetchRequest을 수정하는 방법이있다. 요청이 readOnly이므로 알아 냈습니다. 다른 옵션을 사용할 수 있습니까?

편집 :

내가 모든 요청을 변경해야 생각하지만, 어쩌면 내가 그냥이 작업을 수행 할 수있는 방법이 될 것입니다 기존의 NSFetchedResultsController 기존 NSFetchRequest을 사용하여 새 자 NSPredicate를 설정할 수 있습니다? 애플 문서에서

+0

내가 아는 한 NSFetchedResultsController를 변형시키는 방법은 없습니다. 새 컨트롤러를 만들어야합니다. – cekisakurek

+0

방금 ​​내가 EDIT에서 암시 한 것을 시도해 보았습니다. NSFetchReqest가 NSFetchedResultsController에 performFetch 메시지를 보내기 전에 새로운 NSPredicate를 포함하도록 수정되어 업데이트를 표시하는 것처럼 보입니다. – fuzzygoat

답변

1

: https://developer.apple.com/library/ios/documentation/CoreData/Reference/NSFetchedResultsController_Class/

하면 당신은 단순히 결과를 수정하는 패치 요청을 변경할 수 없습니다 요청을

가져 오기 수정. 가져 오기 요청을 변경하려면 다음을 수행해야합니다.

캐시를 사용하는 경우 deleteCacheWithName을 사용하여 삭제하십시오.

일반적으로 가져 오기 요청을 변경하는 경우 캐시를 사용하면 안됩니다.

가져 오기 요청을 변경하십시오. (술어 수정)

performFetch :를 호출하십시오.

관련 문제