2010-05-28 2 views
1

여러 화면이 포함 된 코어 기반 탐색 iPhone 앱을 만들고 있습니다. 플래시 카드 응용 프로그램이라고합시다. 데이터 모델은 Language와 CardSet의 두 엔티티만으로 매우 간단합니다. Language 엔티티와 CardSet 엔티티 간에는 일대 다 관계가 있으므로 각 언어에 여러 CardSet이 포함될 수 있습니다. 즉, Language에는 CardSets 목록을 가리키는 일대 다 관계 Language.cardSets가 있고 CardSet에는 Language를 가리키는 CardSet.language 관계가 있습니다.NSFetchedResultsController 보조 UITableView에 - 데이터를 쿼리하는 방법?

두 개의 화면이 있습니다. (1) 언어의 목록을 표시하는 초기 TableView 화면. (2) 언어의 CardSets 목록을 표시하는 보조 TableView 화면.

언어를 나열하는 초기 화면에서 NSFetchedResultsController를 사용하여 언어 목록을 최신으로 유지합니다. 화면에서 선택한 언어가 보조 화면으로 전달됩니다.

보조 화면에서 CardSet 목록을 유지하기 위해 NSFetchedResultsController를 다시 사용해야하는지, 아니면 Language.cardSets를 통해 개체 모델에서 목록을 간단하게 가져와야 하는지를 파악하려고합니다. 후자는 이미 언어를 가지고 있기 때문에 프로그램 적으로 가장 의미가 있습니다.하지만 변경 사항에 따라 자동으로 업데이트되지는 않습니다.

NSFetchedResultsController 문서를 살펴 보았습니다. 속성을 기반으로 술어를 쉽게 만들 수 있지만 관계는 만들 수없는 것처럼 보입니다. 즉, 나는 다음과 같은 NSFetchedResultsController를 만들 수 있습니다

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name LIKE[c] 'Chuck Norris'"]; 

가 어떻게 직접적인 관계를 통해 내 데이터에 액세스 할 수 있습니다 - Language.cardSets - 또한 NSFetchedResultsController를 사용하여 테이블 자동 업데이트가? 이것이 가능한가?

답변

0

세부 사항에 NSFetchedResultsController을 사용하면 세트에 대한 변경 사항이 자동으로 통보됩니다. 이는 순이익입니다. 개인적으로는 편의를 위해 두 번째 NSFetchedResultsController을 사용합니다.

+0

결국 NSFetchedResultsController를 사용하여 내 엔티티가 고유 한 이름을 가졌다 고 가정했습니다. – Jason

+0

밑줄 친 NSFetchRequest에게 고유 항목 만 반환한다고 알릴 수 있습니다. 당신이 그 깃발을 알고 있는지 확실하지 않습니다. –

관련 문제