問題タブ [nsfetchedresultscontroller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - NSFetchedResultsController を使用したテーブル セクションの作成
NSFetchedResultsController
のデータを駆動するために使用していUITableViewController
ます。私が取得している管理対象オブジェクトの簡略化されたバージョンは、次のようになります (たとえば)。
Person
基本的に、ペットを飼っているオブジェクトのみを表に表示したいと考えています。簡単です。述語を使用できます。さて、 という方のためにhasPet == YES
、第1部hasDog == YES
と第2部の2回に分けて表にまとめたいと思いhasDog == NO
ます。これは私が少しぼやけているところです。ここで結果コントローラーを構成します。誰かが私を正しい方向に導くのを手伝ってくれることを願っています。
注意を向ける必要があるのはソート記述子ですか?
iphone - NSFetchedResultsControllerDelegate が起動しない
私の人生では、基礎となるデータストアにデータを追加するときに NSFetchedResultsControllerDelegate メソッドが起動しない理由がわかりません。iPhone アプリケーションを再起動すると、すぐにデータが表示されます。
UITableViewController をサブクラス化し、NSFetchedResultsControllerDelegate に準拠しています。
NSFetchedResultsController をインスタンス化し、デリゲートを自分自身に設定します。
デリゲート メソッドを実装します。
保存したいエンティティを作成します。
そして後で、私はそれを保存します:
デリゲート メソッドが起動しないという事実を除いて、すべて正常に動作します。明らかに、私のテーブル ビューは更新されず、新しいデータを表示する唯一の方法は、アプリを明示的に更新または再起動することです。
CoreData Recipe アプリを調べましたが、不足しているものを見つけることができないようです。考え?
-ルター
iphone - NSFetchedResultsControllerDelegate 'ChangeUpdate' の動作は壊れていますか?
NSFetchedResultsControllerDelegate のドキュメントは、次のサンプル コードを提供します。
新しい NSManagedObject を作成すると、NSFetchedResultsChangeInsertが起動します (すばらしい!)。(セルのタイトルに使用される) 属性の値を変更すると、NSFetchedResultsChangeUpdateが発生します。残念ながら、テーブル、セクション、または行をリロードしない限り、新しいタイトルは自動的に表示されません。実際、新しい名前によって結果セットのソートが異なる場合、NSFetchedResultsChangeMoveが起動し、提供されたコードがセクション全体をリロードするため、すべて問題ありません。
UITableView にはメソッドreloadRowsAtIndexPaths:withRowAnimationがあるので、 NSFetchedResultsChangeUpdateコード ブロックでこれを使用してみました。それは確かに機能します...しかし、この特定のメソッドのドキュメントは、私がそれを必要としないかのように読みます(最後の行に注意してください):
行を再ロードすると、テーブル ビューはデータ ソースにその行の新しいセルを要求します。テーブルは、古い行をアニメーション化するのと同じように、その新しいセルをアニメーション化します。セルの値が変化していることをユーザーに警告する場合は、このメソッドを呼び出します。ただし、ユーザーへの通知が重要でない場合、つまり、セルに表示されている値を変更したいだけの場合は、特定の行のセルを取得して新しい値を設定できます。
そして、はい、何が起こっているかをログに記録すると、いつ
NSFetchedResultsChangeUpdateで呼び出されると、最新の「name」値を取得してセルの textLabel に設定できます。リロードしない限り、セルに名前が表示されません。セルをクリックするだけでも、名前が表示されます。この動作を再現するには、新しい管理対象オブジェクトを作成し、NSFetchedResultsController で最初に並べ替える名前を付ける必要があることに注意してください。そうすれば、NSFetchedResultsChangeMove は起動しません (セクションをリロードするため、機能します)。
何か不足していますか、それともこれは予想される動作ですか? reloadRowsAtIndexPathsの「議論」により、行、セクション、またはテーブルをリロードせずに、セルの textLabel を単純に設定できるはずだと思うようになりました。
iphone - フェッチ リクエストに一時オブジェクトを含めない
テーブル ビューを処理するフェッチされた結果コントローラーがあり、コンテキストで作成されたがストアに保存されていない新しいマネージド オブジェクトも表示されるという問題があります。保存されたオブジェクトのみを一覧表示したい。
フェッチ要求で setIncludesPendingChanges を NO に設定しようとしましたが、うまくいきません!
どんなアドバイスでも大歓迎です!
ありがとう、
マイク
iphone - iphone fetchRequest サブエンティティ?
「親」からデータをフェッチし、それを fetchresultscontroller に割り当てた場合でも、呼び出す必要があります
私の cellForRowAtIndexPath で子データを取得します。これは通常のことですか、それとも fetchedresultscontroller で子から実際のデータを取得できますか?
iphone - 管理対象オブジェクトのコンテキストを観察する方法
アプリケーションの最初のタブでオブジェクトを変更すると、fetchedResultsController を使用しているため、タブ 2 で更新が自動的に更新されます。これで、自分自身も更新する必要がある 3 番目のタブがありますが、どうすればそれを行うことができますか?
適切なデータを取得するために、3 番目のタブに nsmangedObjectContext しかありません。このコンテキスト内のオブジェクトが変更されるたびに通知を受け取るにはどうすればよいですか?
また、タブ 2 と 3 が同じデータ セットを使用するため、データの取得をより効率的にするにはどうすればよいかという問題にも取り組んでいます。現在、タブ 2 と同じデータを取得するために、タブ 3 で別のフェッチを行っています。
この件に関する情報は本当にありがたいです!!
objective-c - NSFetchedResultsControllerと検索
NSFetchedResultsController
データをフィルタリングするためのベストプラクティスは何ですか?検索バーのテキストが変更されるたびに再初期化する必要がありますか?
私はを使用していて、UISearchDisplayControllers
実装しています:
どうも。
iphone - 異なるコンテキスト内のオブジェクト間に関係 'xyz' を確立しようとする不正な試み
CoreDataBooks
バックグラウンドでセカンダリ管理オブジェクト コンテキストにデータを取り込み、そのデータをプライマリ管理オブジェクト コンテキストにマージするための基礎として、Apple のサンプル アプリケーションを使用しています。
私が引き込んでいるデータは、エンティティ (「所有者」と呼ばれる) とBook
の対 1 関係を持つエンティティです。エンティティは(「本」と呼ばれる) と対多Owner
のOwner
関係にあります。Book
私のデータは、次の形式の XML ドキュメントです。
Book One
~は 1 つ( )Book N
に関連付けられています。Owner
"alexpreynolds, 123456"
Owner
これをインスタンスとインスタンスでNSMutableSet
構成されたものに解析していBook
ます。
初めて保存しようとすると、問題なく保存され、マージされたデータがテーブル ビューに表示されます。
ただし、2 回目の保存では、XML コンテンツに新しい本が含まれていると、機能しません。
何が起こるかは次のとおりです。
Book
次に、まだプライマリ管理対象オブジェクト コンテキストにない新しい を含む XML ドキュメントをロードしようとしました。新しいは、他の に関連付けられているものとBook
同じものを使用しています。Owner
Book
Owner
この一意の管理オブジェクト (プライマリ管理オブジェクト コンテキストに既にある) と、プライマリ MOC にBook
ない一意のオブジェクトを選択するルーチンがあります。
これからBook
、セカンダリ MOC に新しいオブジェクトを作成し、その " " 関係をプライマリ MOC で見つけowner
た一意のものを指すように設定します。Owner
保存すると、次のエラーが表示されます。
Book
セカンダリ MOC に新しいエンティティを作成して、プライマリ MOC の既存のエンティティと引き続き関連付けることができるようにするにはどうすればよいOwner
ですか?