2012-02-17 8 views
1

テーブルビューに表示される場所の詳細を格納するiPadアプリケーションを開発しています。ユーザーは、すべて(アルファベット順の単一セクション)、地域wise(各地域としてのセクション)とタイプwise(各タイプとしてセクション)で場所を並べ替えることができます。私は初期化中に 'sectionNameKeyPath'を与えなければならないので、それぞれ別々のNSFetchedResultControllerを使用しています。 私は現在2つの問題を抱えています。 1週間以上の検索を費やしましたが、私が見つけた解決策はより多くの関連する問題を作成していました。任意の更新のため単一のUITableおよびCoreDataエンティティデザイン用の複数のNSFetchedResultController

1)(例えば:お気に入りとして位置を設定する)代わりNSFetchedResultsChangeUpdateのNSFetchedResultsChangeDeleteを与えます。

  • 多くのフォーラムはそのA既知のバグは、我々は、複数のfetchedResultController
  • を使用する場合、私は避けることができる唯一の方法は、デリゲートメソッドを使用していないと、それぞれの変更のために再度フェッチすると言います。したがって、tableviewアニメーションだけが欠落しています。
  • すべての更新がデリゲートコールバックを返すわけではありません。 私は正しい方法で行っているのですか、それとも単一のFetchedResultControllerを使用できるより良い方法ですか?現在のEntityデザインと効率的にFetchedResultControllerを使用することはできません種類のソート

2)テーブルビュー。現在のデザインエンティティの場所、タイプ、および地域。 Region to Locationは1対多の関係です。しかし、Location-to-Typesは双方向の多対多関係です。 [私は、エンティティのデザイン画像をアップロードしようとしましたが、私の評判はそれを可能にしません。]

  • タイプ関係は、多対多の両方の方向にある場所します。したがって、タイプはにあるセットであるため、sectionNameKeyPathを指定できません。エンティティです。だから、エンティティ型から取り出して、その場所からの配列(セット)を取得しています。
  • のでnumberOfRowsはその命じないset.Butから計算することができます。コンパレータを使ってソートしています。 はこれが正しい方法であることを確認していないので、このEntityデザインについてのあなたの貴重な提案を与えるために、あなたのすべてを求めています。

答えて

0

かなり確実それは(ある偉大な排他的な機能)変更の通知に来るが、私はNSFetchedResultsChangeDeleteは必ずしもオブジェクトがから削除されたことを意味するわけではないことがわかったとき、CoreDataは、欠陥のいくつかのセットを持っていませんデータベース、オブジェクトがフェッチされたオブジェクトでのみ使用できなくなりましたどちらか、それが削除されたためか、それがもはや現在の述語(条件)に収まることを意味しません。それをチェックしてください。

関連する問題