2011-07-13 10 views
2

NSFetchedResultControllerを使用してCoreDataからテーブルビューを作成しようとしています。 問題は、NSFetchedResultControllerを設定するために2つのエンティティを使用することです。複数のNSFetchedResultsControllerを1つのTableViewに作成する

エンティティの1つはFolderと呼ばれ、もう1つはDocumentsです。 これらのエンティティの関係は、サーバー側で実装されています。

どのように複数のNSFetchedResultControllerを1つのクラス/ TableViewに追加できますか?

また、私が解明できるより良い選択肢があります。

ご協力いただきありがとうございます。

答えて

2

すべては、UITableViewDataSourceメソッドの実装方法によって異なります。あなたはいくつかの細心の注意を失うでしょうが、実現可能でなければなりません。

私は時々、二つの異なるエンティティタイプ(FRC =フェッチ結果コントローラ)を示すの間で交換し、...

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    NSInteger n = [[[self frcForTable:tableView] sections] count]; 
    return n; 
} 

あなたがフェッチ結果コントローラから一緒に混ざった結果であれば、複雑さはどのように依存しますあなたはそれをやっている。 1つのタイプを上部に、下部に1つ入れると、それらをインターレースするよりも簡単になります。

編集

「マッシュ」2つの結果にデータソースのメソッドを実装します。あなたは一つのセクションをしたい場合は、その後、あなたは上記を必要としない、当然の

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    NSInteger count1 = [[frc1 sections] count]; 
    NSInteger count2 = [[frc2 sections] count]; 
    return count1+count2; 
} 

+0

はいトップに1つ、底に1つのタイプを入れたい – iosdevnyc

+0

テーブルビューでセルを実装する方法 – iosdevnyc

+0

セルタイプが大幅に異なる場合は、2つの異なるセルタイプ。それぞれ独自の 'reuseIdentifier'を持つべきです。 – bshirley

関連する問題