問題タブ [fetched-property]

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.

0 投票する
0 に答える
279 参照

core-data - 再帰的な基準または再帰的な Fetched プロパティを持つ NSFetchRequest

sqlite ベースのコア データ ストレージには、アイテムとタグの 2 つのエンティティがあります。

アイテムはタグと多対多の関係にあります。タグには、1 つの親タグに対する再帰的な関係もあります。したがって、タグはツリーを形成します。

ここで、条件タグのリストにすべてのタグを持つすべてのアイテムを取得する NSPredicate を作成したいと考えています。

問題は、アイテムに基準リストのタグがなく、タグ ツリーの基準タグの下にあるタグがある場合にも基準を満たす必要があることです。

基準リストを拡張して、すべての子孫を含めることができます。しかし、これはツリーが大きいため、リストが膨大なサイズに爆発します。

理論上の解決策の 1 つは、「parent.ancestors と自己結合する」タグ「ancestors」の Fetched Property です。しかし、私はこれを定式化する方法がわかりません。そして、フェッチされたプロパティでリレーションシップをトラバースすることはできないと思いますよね?

パフォーマンス上の理由から、すべてのアイテムをフェッチしてプログラムでフィルタリングすることは避けたいと思います。

何か案は?

ありがとう、マルコ

0 投票する
1 に答える
148 参照

core-data - Core Data プロパティをテキストフィールドにロードする

保存したコア データをテキスト フィールドにロードする適切な方法が見つかりません。静的セルを含むビューがあり、各セルには複数のテキストフィールドがありますが、特に何もありません。テキストフィールドを埋めて保存ボタンを押すだけで、ユーザーがこのビューに移動するたびに、テキストフィールドが最後に入力されたテキストで表示されます。

保存部分まですべてがうまく機能します。問題は、別のビューに切り替えてから戻ってくると、テキストフィールドが入力されないことです。ビューで作業する必要があることはわかっていますが、データをロードしてフェッチしましたが、何が間違っているのかわかりません。

0 投票する
1 に答える
758 参照

ios - コア データはデータ モデルを遅延して更新しますか?

述語を変更しようとしても、コア データが述語の変更を認識しないという問題に直面しました。取得したプロパティが正しい結果を表示しない理由を見つけるのに多くの時間を費やしました (以下のコードを参照)。データモデルの更新に遅延はありますか? それとももっと頻繁に休憩を取るべきですか?

これが私のモデルです。

0 投票する
0 に答える
584 参照

core-data - iOS 7 CoreData - FetchedProperty が障害のある配列を返す

私が正しい道を進んでいるかどうか、誰かが教えてくれるかもしれません。

私は2つのエンティティを持っています:

次の属性を使用して 演習を行います: title - string ; エクササイズID - 整数

次の属性を持つ追加された演習: count - int ; added_exercise_id - int

addedExerciseには、 destination: Exercise および predicate: exercise_id == $FETCH_SOURCE.added_exercise_id持つ link_exerciseというフェッチされたプロパティがあります。

私のコードでは、次のことを行います。

ログには次のように書かれています。

()、name link_exercise、isOptional 1、isTransient 1、entity AddedExercise、renamingIdentifier link_exercise、validation predicate ( )、warnings ( )、versionHashModifier (null) userInfo { }、fetchRequest (entity: Exercise; predicate: (exercise_id == $FETCH_SOURCE.added_exercise_id); sortDescriptors: ((null)); タイプ: NSManagedObjectResultType; ) on 0x1700d8b80

そのため、何かがそこにあり、障害で表されているようです。しかし、「link_exercise」配列にアクセスしようとすると。例: e.link_exercise.countまたはe.link_exercise.lastObject

次のエラーが表示されます。

「NSUnknownKeyException」、理由:「[<_NSCoreDataTaggedObjectID 0xd000000000040002> valueForUndefinedKey:]: このクラスは、キー added_exercise_id のキー値コーディングに準拠していません。」

多分誰かがそれを解決する方法を考えています。

よろしくお願いします。

SR

-----> 更新 1:

述語を次のように変更しました: SELF.exercise_id=exercise_id

これで、 Exerciseオブジェクトにアクセスできますが、ID が間違っています。

SELF.exercise_id=exercise_idはSELF.exercise_id= added_exercise_idのようになります

述語SELF.exercise_id= added_exercise_idを使用すると、次のエラーが発生します。

「NSInvalidArgumentException」、理由: 「述語 (exercise_id == added_exercise_id) の SQL を生成できません (RHS の問題)」

-----> 更新 2:

動かない原因が未だにわかりません…

私にとっては

正しい述語である必要がありますが、機能しません。多分他の誰かがいくつかの提案を持っています...?

または、自分で (プログラムで) フェッチ要求を作成する必要がありますか? つまり、すべての「Exercise」にフェッチ リクエストを設定し、exercise_id = added_exercise_id の 1 つを返します。これは基本的に、フェッチされたプロパティを介して現在解決しようとしているものです。

-----> 更新 3: OK 私はほぼそれを持っています!! 言い忘れたことの 1 つは、マルチ managedObjectContext コア データ スタック (worker-、main-master-context を含む) を使用することです。

私のすべてのリクエストはワーカーコンテキストに送られます(この場合、フェッチされた適切なものは機能しません)しかし、すべてのリクエストがマスターコンテキストに送られると、フェッチされたプロパティは期待どおりに機能します!!

したがって、永続ストアを持つ managedObjectContext でのみ機能するようです。

誰かが私に説明できますか、なぜこれが他の managedObjectContext では機能しないのですか?

0 投票する
0 に答える
231 参照

ios - コア データ - ビットマスクと抽象エンティティを含むフェッチされたプロパティ

Core Data Editorの表示状況

(匿名性を保つためにデータモデルの名前を変更しました。:D )

そのため、構成が独自の特別なオブジェクトによって定義されているモノの状況がありますが、そのオブジェクトは2つのクラスタイプのいずれかです。

モノの構成が特定の既知のサブクラスのものであるかどうかを尋ねることで、このモデルでフェッチ リクエストを実行できるようにしたいと考えています。これが本当なら、私はこれを「特別ではない」と定義します。したがって、構成として他のタイプのサブクラスも持っている場合、それも「特別ではない」です。

私の質問は次のとおりです。

  • 構文は正しいですか?(私のアプリではエラーが発生します)
  • なぜ NSArray を返したいのですか? (1 つのオブジェクトに対して 1 対 1 の関係をトラバースしていると思いました。したがって、この NSArray をどのように解釈しますか?)

私は多かれ少なかれ MagicalRecord 経由の Core Data しか知らないことを付け加えておきます。モジェネレーターも使ってます。

0 投票する
0 に答える
183 参照

ios - Core Data Fetched プロパティでの日付の使用

Core Data を使用する xCode プロジェクトでは、Article と ArticleMarket の 2 つのエンティティを取得しました。それらは 1 対多の関係にあり、1 つの記事には n 個の articlemarkets があります。

これを尊重するすべての記事を取得する必要がありますNSPredicate

これは、Article にリレーションシップのような「markets」コレクション フィールドがある場合に機能します。問題は、フィールドが a であることですFetched Property。すべての ArticleMarket を対応する記事にリンクする必要があり、何千もの記事があるため、関係にすることはできません。

したがって、その述語はリレーションシップでは機能しますが、フェッチされたプロパティでは機能しません。それは私にこのエラーを与えます:

私はこれを考えました: Fetched プロパティの述語にその述語を直接入れることはできますか? それが結果です:

わかりました、/ TODAY /の代わりに何を置きますか?

事前に感謝し、英語が下手で申し訳ありません。問題が明確になることを願っています!

0 投票する
1 に答える
310 参照

ios - CoreData フェッチされたプロパティが別のエンティティを参照しています

私は CoreData Entity という名前をList持っており、それは Relationship to an Entity を持っていAddressます。Addressこれは、 が 1 つだけになることができるため、1 対多の関係Listです。

Addressエンティティには、 である属性flagがありInteger 16ます。

セットが 1 に設定されているすべての関連エンティティの数を使用しFetched Propertyて、エンティティで aを定義する方法はありますか? 述語はどのようになりますか?ListAddressflag

ありがとう

0 投票する
4 に答える
99 参照

objective-c - CoreData エンティティ フェッチ リクエスト

TimeInterval属性が astartDateとのみfinishDateで、型が Date であるというエンティティがあります。totalTime次のようにして計算できるため、別の属性を追加する必要はありません。[finishDate timeIntervalSinceDate: startDate]

属性のフェッチされたプロパティを作成できますtotalTimeか? そうでない場合、totalTime を属性として追加する必要がないため、冗長に見えるため、これを行う最善の方法は何ですか。

ちなみに、Core-Data は初めてです。