問題タブ [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.

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

iphone - Core Data のリレーションシップ関連エンティティから属性を取得するにはどうすればよいですか?

私は ObjC の経験はありますが、Core Data は比較的新しいものです。今まではかなり簡単でしたが、私は人間関係に少し行き詰まっているので、誰かが私を正しい方向に向けてくれることを願っています.

2 つのエンティティがあります。1 つは人のリストで、もう 1 つはイベントのリストです。

2 つのエンティティ間のデータ モデルに逆の関係 (「人」と呼ばれる) を設定し、人側を「対多」に設定しました。言い換えれば、5 人でも数千のイベントを持つことができます。各イベントは 1 人の人物に関連付けられていますが、1 人の人物が任意の数のイベントを担当する可能性があります。

[NSEntityDescription insertNewObjectForEntityForName...] を使用してイベントを追加し、NSFetchedResultsController でそれらを取得します。

問題は、特定のイベント オブジェクトをフェッチするときに、人物に関するデータをまだ正常に取得できていないことです。例:

私は何が欠けていますか?交際中の人物に関するデータを取得するにはどうすればよいですか? 最初にログ エントリを追加する際の重要なリンク、またはログ エントリを取得する際に必要な述語を省略したような気がします。Apple のドキュメントは、関係や具体的な例に関しては少し不足しています。ここでは、まだ昔ながらの SQL に頭を悩ませているかもしれないので、本当に助けが必要です。ありがとう!

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

iphone - NSFetchRequest は SIGABRT または EXC_BAD_ACCESS を引き起こします

フェッチリクエストにこの単純なコードを使用しています

NSLog(@" i want show my result : %@",fetchResults);-> SIGABRT を引き起こす

この作成直後に永続ストアで使用している場合、エラーが発生します。

PS: ストアは、入力とリクエストの間で保存されました。

しかし、アプリを閉じて再度開くと (この場合はストアが存在します)、エラーは発生しません。

場合によっては、このメッセージを表示できます: 「NSException」のインスタンスをスローした後に呼び出された終了

しかし、私はこの例外にアクセスできません。

フェッチ結果を数えてみると、いい数字が出てますね、本当に不思議です。

手伝ってくれてありがとう。

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

iphone - Fetching lots of objects with Core Data, what are the consequences?

Does it hurt to execute an NSFetchRequest that retrieves a lot of objects, maybe around 3 ~ 5K? I understand Core Data uses something called 'faulting' that ensures objects are not in memory until they are actually needed. So if I fetch 5K objects in an NSArray, that means the objects are really just placeholders until I actually access their properties? Is this a bad practice?

0 投票する
5 に答える
2268 参照

objective-c - NSPredicateを指定したNSFetchRequestは、NSInvalidArgumentExceptionをスローすることがあります

これは私を困惑させています:

次のコードを使用して検索/フィルタリングするコアデータセットがあります。

sTermは単なるNSString。です。

これは95%の確率で機能しますが、たまにNSInvalidArgumentException: Can't use in/contains operator with collection 10076173 (not a collection).

述語文字列の形式は次のとおりです。

((isLocalVersion == 1)AND(LeadStatusID =='Active'))AND((LeadID contains [cd]'i')OR(AccountNumber contains [cd]'i')OR(ANY contactItems.FirstName contains [cd] 'i')OR(ANY contactItems.LastName contains [cd]'i')OR(ANY addressItems.Address1 contains [cd]'i')OR(ANY addressItems.City contains [cd]'i'))

私のキャッチでは、クラッシュせずに0の結果を返すことができますが、これは最適ではありません。誰かがこれを見たことがありますか?

私の唯一の手がかりは、コアデータのレコードを変更(および保存)した後に発生するように見えることです(これも時々だけです)。

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

iphone - 対多関係を使用した依存プロパティによる NSFetchRequest のソート

コアデータの問題については少し詳しくないので、ガイダンスをいただければ幸いです。対多関係に基づく依存プロパティを使用する NSSortDescriptor を使用して NSFetchRequest を作成したいと考えています。

Apple の側では、ドキュメントには、これを行うことはできないと書かれています。私を混乱させているのは、NSSortDescriptor の一部として使用した場合にのみ機能しないということです。リクエストの NSPredicate と私の ManagedObject サブクラスで動作します。

要するに、多くの Checkin オブジェクトを持つことができる Venue オブジェクトで構成される単純なオブジェクト モデルがあります。各 Checkin オブジェクトには、hereNow というプロパティがあります。

ここまでは順調ですね。これは、TableView コントローラーからの fetchRequest です。

そのコードをそのまま使用すると、次のエラーが発生します

キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。checkins.@sum.hereNow の処理に失敗しました'

しかし、完全に機能する MapView コントローラー用の同様の fetchRequest があります (名前フィールドを使用するように NSSortDecriptor を設定しただけです)。TableView fetchRequest に対して同じことを行うと、それも機能し、新しいチェックイン オブジェクトが追加されたときに会場の数が正しく更新されるように見えます。そのため、述語でその keyPath を使用しても問題はないようです。sortDecriptor だけです。

ただし、 Appleのドキュメントには次のように書かれています;-

対多関係に依存関係を設定することはできません。たとえば、OrderItem オブジェクトのコレクションに対して対多の関係 (orderItems) を持つ Order オブジェクトがあり、OrderItem オブジェクトに price 属性があるとします。Order オブジェクトには、関係にあるすべての OrderItem オブジェクトの価格に依存する totalPrice 属性が必要になる場合があります。keyPathsForValuesAffectingValueForKey: を実装し、totalPrice のキーパスとして orderItems.price を返すことによってこれを行うことはできません。orderItems コレクション内の各 OrderItem オブジェクトの price 属性を観察し、totalPrice を自分で更新して値の変更に対応する必要があります。

これは十分に明確に思えますが、述語で同じことを実行できる理由がわかりません。これは私の最初の Core データ アプリなので、少し慣れていません。KVO、KVC などに関するいくつかの質問を読んだことがありますが、実際には適切に把握できていません。ご覧のとおり、私が実際にやろうとしているのは、派生した "hereNow" カウントの合計に基づいて Venues のコレクションを並べ替えることだけです。おそらく、私はこれについて完全に間違った方法で進んでいますか?もしそうなら、正しい方向への友好的な舵取りに感謝します!

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

iphone - コア データで既存の値を 1 対多の関係でリンクする方法は?

既にカテゴリにある値を wod エンティティにリンクしようとしています。カテゴリの wod のレコードごとに新しいレコードを呼び出したいので。これを行う方法がわからない。述語を使用することを考えていましたが、フェッチ要求からリンクする方法が正確にはわかりません。

これは私のスキーマがどのように見えるかです:

ここに画像の説明を入力

それらをリンクしようとするコードは次のとおりです。

どんな助けでも大歓迎です。

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

objective-c - NSFetchRequest のエンティティ名で並べ替え

多数のサブエンティティを持つ特定のエンティティのすべてのアイテムを表示するフェッチされた結果コントローラーがあります。

フェッチされた結果コントローラのセクションは、エンティティ名、つまりアイテムが属するサブエンティティに基づいている必要があります。を に設定するsectionNameKeyPath@"entity.name"動作します。

ただし、フェッチ要求に対して正しいソート記述子を取得することは不可能のようです。のようなものは、のような[NSSortDescriptor sortDescriptorWithKey:@"entity.name" ascending:YES]エラーになりkeypath entity.name not found in entity Somethingます。

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

objective-c - リレーションシップ テーブルに基づいて親テーブルからレコードを取得 - CoreData

タイトルが意味をなさない場合は申し訳ありません。

もう少し説明しましょう。

私はこの CoreData アプリケーションを持っていますが、CoreData は比較的新しいものです。私は2つのテーブルを持っています。1 つは予算で、もう 1 つは支出です。したがって、Budget テーブルには TotalBudget というフィールドがあります。現在、Spending Table にはユーザーが入力したさまざまな行があり、このテーブルには個人支出というフィールドがあります。

ここで私が望んでいることは、個々の支出の合計が TotalBudget (Budget テーブル) より小さい予算のみを取得することです。SQL言語では、以下のようなものになります

TotalBudget < の予算から BudgetName を選択 (BudgetID = Budget.BudgetID の支出から Sum(IndividualBudget) を選択)

コアデータでそれを達成するにはどうすればよいですか? 1 つのテーブルからデータを取得するコードがあり、NSPredicate を使用して BudgetStartDate と BudgetEndDate に基づいてレコードをフィルター処理できますが、どうすればそのようなことを達成できますか。

ありがとう

0 投票する
2 に答える
570 参照

ios - テーブルのインデックスをコア データ名属性の最初の 4 文字にする方法を知っている人はいますか?

私はコインアプリに取り組んでいます。コインは、Core Data によって管理されるテーブルビューでユーザーに提示されます。

コイン名はすべて「19」または「20」で始まります。テーブル ビューにセクション インデックスを実装すると、インデックスに "1" と "2" しか表示されません。「1」を押すとテーブルが「1900」コインに移動し、「2」を押すと「2000」コインに移動します。その理由はわかっています。名前フィールドの最初の数字から来ています。

私が欲しいのは「1910」、「1920」、「1930」などで、ユーザーは10年にジャンプできます。

モデルに「titleForSection」という属性を追加し、「1910」、「1920」などを入力して、取得リクエストで sectionNameKeyPath を @"titleForSection" 属性に設定しました。言うまでもなく、うまくいきません。

セクション インデックスを name 属性の最初の 4 桁にする方法を知っている人はいますか?

アップデート:

「titleForSection」属性を文字列から数値に変更し、データベースに 1900 年から 2010 年まで、10 年単位でデータを入力しました。現在、テーブル インデックスは「0」、「1」、および「2」のみで表示されます。そこに数字を入れられない理由がわかりません!

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

xcode - NSFetchedResultsControllerセクションインデックスが間違った行に移動します

セクション付きのFRCがあります。セクションインデックスを実装しました(それが機能する他の6つのビューと同じように)。ただし、インデックスの1つをタップすると、中央に移動して停止します。私のFRCメソッドとsectionIndexメソッドは以下のとおりです。

デバッガーでコードをステップ実行すると、sectionForSectionIndexTitleは適切なインデックス(重要な場合は15)を返しますが、「I」で停止します。

何か案は?

編集: