인덱싱을 지원하는 코어 데이터 백업 UITableView를 구현하려고합니다 (예 : 측면에 나타나는 문자 및 함께 나타나는 섹션 헤더). 나는 모든 사용하여 코어 데이터없이 구현에 아무런 문제가 없습니다 :인덱싱을 사용하는 코어 데이터 백업 된 iITableView
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView;
나는 또한 색인을 사용하지 않고 핵심 데이터에 의해 백업됩니다 jQuery과 구현 아무런 문제가 없습니다.
내가 알아 내려고하는 것은 두 가지를 우아하게 결합하는 방법입니다. 컨텐츠를 인덱싱하고 다시 섹션을 다시 작성하면 더 이상 표준 NSFetchedResultsController를 사용하여 지정된 인덱스 경로에서 항목을 검색 할 수 없습니다. 그래서 NSArray에 NSArray와 색인 된 내용에 색인 문자를 저장합니다. 이 모두 표시 잘 작동하지만, 특별히 제대로 이러한 방법을 구현하는 방법, 행 추가 및 삭제에 올 때 나는 진짜 두통이 : 그것은 나를 돌아 오는 것 인덱스 경로 때문에
- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller;
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath;
- (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type;
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller;
것과 아무 상관이 없다 핵심 데이터. 사용자가 행을 추가 할 때 NSArray 및 NSDictionary 인덱스를 다시 작성하기 만하면됩니다.하지만 삭제할 때 동일한 작업을 수행하면 전체 애플리케이션이 손상됩니다.
간단한 패턴이 있습니까/예 제가 제대로 작동하지 못하고 있습니까?
편집 : 명확히하기 위해 NSFetchedResultsController가이 작업을 수행한다는 것을 알고 있지만 원하는 것은 연락처 앱과 같은 기능을 복제하는 것입니다. 여기서 인덱스는 사람의 이름의 첫 글자입니다.
나는 내가 충분히 자신을 분명히하지 않았다고 생각한다. 색인이 사람의 첫 번째 글자 인 연락처 응용 프로그램처럼 보이기를 바랍니다. – rustyshelf
그렇다면 왜 sectionNameKeyPath로 이름을 사용하지 않는 것입니까? – gerry3
sectionNameKeyPath! ?? !?! ??! 도대체 내가 그것을 그리워 했어! 와우는 훌륭하게 작동합니다. 나는 내 자신을 코딩하기 전에 더 나은 doco를 읽었어야했는데 ... 되돌아 왔고 감미롭 게 작동하고있다. 내가 할 수 있다면 당신에게 +5000 줄 것입니다;) – rustyshelf