2010-01-13 5 views
1

나는 다양한 방법으로 정렬 될 수있는 데이터 집합에 의존하는 응용 프로그램을 만들고 있습니다. 핵심 데이터 설정이 있습니다. 모든 레코드를 가져 오는 가져 오기 요청이 있습니다. 탐색 컨트롤러의 왼쪽에 정렬 버튼이 있습니다. 그것은 내 정렬 옵션이 테이블과 모달보기를 제공합니다. 옵션을 변경하면 모달 뷰가 닫힙니다. [[NSUserDefaults standardUserDefaults] objectForKey : @ "sortOption"]을 사용하여 선택한 옵션에 액세스 할 수 있습니다.코코아 아이폰 fetchedResultsController 정렬

이제 어떻게 든 정렬 설명 자의 새 배열로 패치 요청을 업데이트하고 sectionNameKeyPath를 변경해야합니다.

fetchedResultsController를 nil로 설정하고 테이블보기에서 reloadData를 호출 해 보았습니다. 아무것도 업데이 트하는 것 같습니다.

아이디어가 있으십니까?

호위

답변

2

내 문제를 해결 보인다!

내가 가져 오기 요청을 재정의 한 후 수행하는 데 필요한 모든 것 같은데, (가) 테이블 데이터를 가져오고 다시 수행합니다.

NSError *error = nil; 

if (![[self fetchedResultsController] performFetch:&error]) 
{ 
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
    abort(); 
} 
[self.tableView reloadData]; 
+0

음, performFetch를 호출하는 것에 대해 언급했지만 reloadData를 이미 수행하고있었습니다 ... – Nimrod

+0

당신이했습니다. 나는 단지 바보 일 뿐이며 매우 새로운 것입니다. - 팁 주셔서 감사합니다. – Ward

1

당신은 단순히 다음, 당신이 당신의 NSFetchedResultsController을 initiallized NSFetchRequest 개체의 속성을 변경 [resultsController performFetch:...]을 수행 할 수 있어야한다. 예를 들어 NSFetchRequest에 서술문 및 정렬 설명 자 배열을 변경 한 다음 performFetch을 호출 할 수 있습니다.

NSFetchedResultsController를 사용하는 방법에 대한 예제가 필요한 경우 Apple의 CoreDataBooks 샘플 코드를 참조하십시오.

어 업데이트, 불행히도 그런 다음 섹션의 키를 변경하려는 경우 당신이 새로운 섹션 키를 사용하여 새 NSFetchedResultsController 객체를 생성해야합니다 생각합니다. NSFetchedResultsController의 모든 속성은 읽기 전용으로 :(

+0

보인다. fetchedResultsController 캐시를 삭제해야합니다,하지만 타 것 ble가 업데이트되지 않습니다. [self.myTable reloadData]를 사용하여 시도했지만 모든 행이 제거되고 결과가 표시되지 않습니다. 내가하고 싶은 것은 내가 즉시 정렬을 변경할 수 있습니다. 어떻게 그렇게 힘들 수 있습니까? – Ward

0

나는 당신이 캐싱을 사용하도록 설정 한 경우 내가 가져온 결과를 업데이트 할 수처럼

[NSFetchedResultsController deleteCacheWithName:@"MyCacheName"]; 
관련 문제