問題タブ [nsfetchrequest]
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.
iphone - NSFetchRequest述語構文
Task
CoreDataモデルで呼び出されたエンティティがあります。Task
エンティティには、と呼ばれる変換可能な属性がありますdate
。date
属性のクラスは、と呼ばれるクラスですTDate
(NSCodingに準拠しているため、変換可能な属性です)。と呼ばれるTDate
タイプのプロパティがあります。NSInteger
month
私の場合、特定の月のすべてのオブジェクトNSFetchRequest
を取得したいと思います。Task
私は次の述語を使用しています:
[NSPredicate predicateWithFormat:@"date.month == 7"]
これで、7月のすべてのオブジェクトが取得されます。Task
ただし、この述語では、フェッチされたオブジェクトは返されません。Task
述語を取り出すことで、月が7日(7月)のオブジェクトがあることを確認できます。述語構文に何か問題がありますか?
ありがとう
iphone - コア データ - NSFetchRequest の問題
NSFetchRequest に問題があります。データをフェッチしていないようです。以下のコードを参照してください。
iphone - objectAtIndex:0] numberOfObjects]> fetchLimit
現在、FRCのfetchRequestのfetchLimitが4の場合、NSFetchedResultsControllerを使用するUITableViewController / UITableViewが約86個のアイテムを表示するという問題が発生しています。86個のアイテムがフェッチ自体を満たしていること、およびそれらが表示される理由を知っています。これは、didChangeObject:atIndexPath ...が86のそれぞれに対して呼び出され、デフォルトの実装の一種として挿入するためです。
私の質問は、fetchLimitがNSFetchedResultsControllerが「変更」(この場合は挿入)しようとするオブジェクトの数を制限しないのはなぜですか?
私のアプリケーションのユースケースは、最初のタブに、アプリの起動時に(サイドスレッドで)取得する一般的なフィードアイテムが表示されることです。それらを別のコンテキストのCoreDataに保存します。これは、最終的にメインスレッドのコンテキストにマージされ、変更された内容に対してFRCコールバックを開始します。私の質問は、特にアイテムが存在しない最初のケースに関するものです。
これが私のfetchRequestです:
上記のcontentTypeは、このタブに表示されるはずのものと他のタブに表示されるものを区別するための単なる方法です。アイテムのブールプロパティが注目されています。これは、表示用のオンオフスイッチのようなものです。
これが私のdidChangeObjectです:
この質問に答えるのは難しいでしょうが、FRCがdidChangeObjectを呼び出す回数を決定する方法の説明でさえ本当に役に立ちます。
iphone - ソート記述子のない NSFetchRequest
NSSortDescriptor を提供せずに NSFetchRequest を使用することはできません。私がやりたいのは、結果を取得して、作成された順序で表示することだけです。それを行う組み込みの方法はありますか?または、新しい「自動インクリメント」フィールドを作成する必要がありますか? (私の意見では、これは CoreData が表すすべてのものに反します)。
core-data - NSFetchResultsController +sectionNameKeyPath+セクションの順序
2つのエンティティ間に1対多のエンティティ関係があります。
属性と関係:
結果を表示するためにフェッチ結果コントローラーを使用します。フェッチ結果コントローラーの実装は次のとおりです。
たとえば、永続ストアに次のデータがある場合:
注:昨日と今日はNSDate形式です。
次に、セクションと行を次の順序で(正確に)取得する必要があります。
しかし、ソートはこのようには機能しません。行は正しい順序で取得されていますが、セクションは順序付けられていません。sortDescriptorPDateが彼の仕事をしていることを願っています。私は何が欠けていますか?期待して感謝します。
iphone - NSFetchedResultsControllerなしでNSFetchRequestの結果をキャッシュする方法は?
NSFetchedResultsControllerを使用せずに、NSFetchRequestの結果をキャッシュする方法はありますか?結果コントローラーのキャッシュ名を設定する方法は知っていますが、多くの場合、コアデータストアからデータを取得してキャッシュしたいだけですが、結果コントローラーは必要ありません。これを行う方法についてのアイデアはありますか?Appleのドキュメントには何も見つかりません。
iphone - この種のリクエストに適した NSPredicate を作成するにはどうすればよいですか?
こんにちは、問題は次のようになります。
タイトルとキーワード エンティティとの関係を持つ CoreData エンティティがあります。
入力したキーワードがタイトルに含まれるすべてのエンティティを取得するのに役立つ述語が必要です。これを行う必要がある以下のコードがありますが、そうではありません。
たとえば、次のようなタイトルのエンティティがあります。
1) 「ぬりえテーマ」 2) 「子供向けテーマ」 3) 「子供向け車」
私のキーワードdbには次が含まれます:
子供の車のための素晴らしい塗り絵のテーマ
たとえば、次のように入力すると、述語を作成するにはどうすればよいですか。
のテーマ
結果は 2) と 3) になります
または私が入力した場合:
素晴らしいテーマ
結果は 1) と 2) になります。
これを達成するための適切な述語を取得するための助けは非常に高く評価されています。私がそこでやろうとしたことはうまくいかず、アイデアがありません。
ありがとう!
iphone - iPhoneコアデータが孫を取得
親 - 子 - 孫に対してエンティティを設定し、それらの間の 1 対多の関係がある場合、親のすべての子エンティティまたは子のすべての孫エンティティを取得できることがわかります。
特定の親のすべての孫エンティティを取得するフェッチを実行することは可能ですか?
助けてくれてありがとう!
objective-c - NSFetchRequest と predicateWithBlock
Core Data と NSManagedObjects を使用して UITableView を設定するアプリで遊んでいます。私のアプリケーションには、 という名前のクラスが 1 つしかありませんEvent
。に次のカスタム インスタンス メソッドを作成しましたEvent
。
UITableView
オブジェクトを表示するEvent
オブジェクトを、有効期限が切れたイベントのみに制限したいと思います。つまり、isExpired
戻りますYES
。に を追加して、これを実行しようとしNSPredicate
ましたNSFetchRequest
:
しかし、エラーが発生します: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Problem with subpredicate BLOCKPREDICATE(0x272ac)'
***
. これは、NSFetchRequest でブロック述語を使用できないということですか? それとも、不適切に構築しただけですか?
ありがとうございました!
iphone - データ モデルにリレーションシップを追加すると、NSFetchRequest がゼロ項目を返す
iPhoneアプリケーションで使用するために、Xcodeのデータモデラーに組み込まれた「ストア」と呼ばれる単純なエンティティがあります。クラス (Store) も関連付けられており、CoreData を使用してデータを問題なく保存および取得できました。
今、私は別のエンティティ (Aisle) との関係を持ちたいことに気付きました。Aisle から Store へはすでに 1 対 1 の関係がありますが、1 つの Store に複数の Aisle が存在する可能性があるため、その逆を追加してみました。新しい関係は 1 対多であり、元の 1 対 1 の関係の逆であり、オプションであり、カスケードに設定された削除があります。関連する Store クラスも再作成して、クラス定義にも NSSet ivar が含まれるようにしました。
この関係を追加するだけで、NSFetchRequest を介して既存のデータを取得できなくなります。デバッグしていると、リクエストによって入力されている配列にアイテムが含まれていないことがわかりますが、SQL データベースを見ると、オブジェクトがすべてそこにあることがわかります。新しい関係を削除すると、すべて正常に機能します。
データを取得するための私のコードは次のとおりです。
フェッチが正しく機能しない理由がわかりましたか?
ありがとうございました!