2009-05-21 4 views
0

코어 데이터 자습서를 끝 마치고 NSFetchedResultsController를 사용하여 변환하려고 시도하는 것이 좋습니다. 그래서 기존 데이터를 쿼리 할 수 ​​있도록 가지고 있지만 시작 부분에 행을 추가하면 tableView : cellForRowAtIndexPath는 NSFetchedResultsController.objectAtIndexPath를 호출하지만 여전히 새로운 0 대신 이전 0 개체를 반환합니다. 데이터를 플러시하기 위해 내가해야 할 일이 있습니까?NSFetchedResultsController를 사용하여 쿼리를 다시 시작하는 방법

답변

2

가져온 결과 컨트롤러의 대리자로보기 컨트롤러를 설정하고 NSFetchedResultsControllerDelegate protocol을 구현 했습니까? 그렇다면 반입을 다시 수행 할 필요가 없습니다. 반입 된 결과 컨트롤러는 변경 사항에 대한 응답으로 위임 메소드를 호출합니다.

. (참고하지만, 테이블 뷰 데이터 소스 방법들의 구현에 관한 NSFetchedResultsController documentation에주의) 실제로

+0

매번 가져 오기를 다시 실행하는 것보다 옳은 대답이되어야합니다.하지만 didChangeObject : atIndexPath : forChangeType : newIndexPath가 완료된 직후 [managedObjectContext save : & error]에서 catch되지 않은 예외가 발생합니다. –

+0

예외는 무엇이며 어떤 방법으로 무엇입니까? – mmalc

2

아무도 아직 답변하지 않으므로 추측을 추가하겠습니다. this link과 같은 것으로 보입니다. 제안이 두 가지 방법 중 하나를 호출하면 당신에 대한 업데이 트를 얻을 것이있다 :

-[NSManagedObjectContext processPendingChanges] 
-[NSManagedObjectContext save] 

는 아마도 documentation for NSManagedObjectContext이 유용 할 것이다.

+0

는 I 이미 [managedContext 저장] 고 하였다 그러나 거기에 단서가있었습니다. –

2

Naaf가 제공 한 링크에 실마리가 있습니다. 저장 후에는 [NSFetchedResultsController performFetch]를 다시 호출해야했습니다.

관련 문제