問題タブ [executefetchrequest]

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 投票する
2 に答える
165 参照

ios - CoreData アプリでの起動時にアプリ デリゲートで NSInvalidArgumentException が発生する

CoreData を使用して作成した、しばらくの間取り組んできたこのアプリがあります。しかし、私は最近、データ モデルの構築と CoreData の操作を開始しました。これを行ったので、シミュレーターでアプリを実行するたびに、最初の行の App Delegate / didFinishLaunchingWithOptions でクラッシュします。

クラッシュは次のとおりです。

その行をコメントアウトすると、実行されます。変!コードのこの時点では、まだ CoreData を使用していないため、フェッチはまだありません。データモデルが変更されたため、システムフェッチが発生した可能性がありますか? シミュレーターからアプリを削除し、クリーン/ビルドを実行しましたが、問題は解決しません。

最初の質問: エラーを修正するにはどうすればよいですか?

2 番目の質問: これは問題ですか? rootViewController の設定を無視できますか?

3 番目の質問: なぜ今失敗しているのですか?

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

ios - executefetchrequest がクラッシュを引き起こす

iOS 7 アプリに Core Data を実装しようとしています (以前は成功していました)。しかし、executeFetchRequest メソッドを実行すると、アプリがクラッシュします。最も関連性の高いコードを以下に追加します。

この線

アプリがクラッシュする原因となります。これは私がこれまでに行って発見したことです:

  • シミュレーター: アプリを削除し、コンテンツと設定をリセットしました
  • Xcode: クリーン (ビルド フォルダー)
  • 「コンテキスト」は nil ではありません
  • NSLog は「ドキュメントが正常に作成/開かれました」と出力します
  • アプリがクラッシュすると、コンソールに「lldb」のみが出力されます

編集: Wain のアドバイスに従って、例外ブレークポイントをオフにすると、述語が無効であるというよりわかりやすいエラー メッセージが表示されました。述語の IN を CONTAINS に置き換え、変数 "country" を変更して nil を返さないようにすることで問題を解決しました。

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

ios - executeFetchRequest は、異なる NSManagedObjectContext からエンティティを返します

私のアプリでは、2 つNSManagedObjectContextsの を使用します。1 つは永続的なデータを保存するためのもので、もう 1 つは一時的なデータを処理するためのものです (NSManagedObjectサブクラスを操作できるようにするため)。

一時エンティティに一時エンティティを作成した後にフェッチ要求を実行すると、NSManagedObjectContext永続的に保存されたすべてのエンティティと一時エンティティが取得されます。

これが私のコードです:

ご協力いただきありがとうございます!

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

ios - executeFetchRequest を非同期で呼び出すにはどうすればよいですか?

IOS アプリケーションで Core Data を使用していますが、データのフェッチ中にボトルネックが発生しています。ループ内で複数回呼び出しexecuteFetchRequestsて、毎回 1 つの結果を取得しています。各フェッチには短い時間がかかりますが、約 500 回呼び出しているため、フェッチには少なくとも 1 秒かかります。GCD を使用して executeFetchRequest を呼び出すのに問題があります。

私のコードは次のようになります。(問題ではないので、データを保存するコードを削除しました)。

セットアップ コード (これをスレッド化されたコード内に入れる必要があるかどうかはわかりません。どちらの方法でも機能しません)。

GCD のセットアップ

各述語を反復処理する

ただし、このコードは決して過去のものではなくdispatch_group_wait、このメソッドを使用してフェッチする場合、フェッチされた managedObject は常に空の文字列です。長い遅延期間がないように、これを非同期で行うにはどうすればよいですか?

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

nsmanagedobjectcontext - NSManagedObjectContext? 「executeFetchRequest」という名前のメンバーがありません

Objective-C コードを変換しようとしています。

NSArray *objects = [context executeFetchRequest:request error:&error];

迅速に:

しかし、そのようには機能しないようです。何をすべきかについてのアイデアはありますか?

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

ios - IOS/Objective-C: 最初にテーブルをロードせずに Core Data から 1 つのレコードをロードする

プロファイル画面の場合、最初にテーブルをロードすることなく、Core Data から詳細ページに相当するものをロードしたいと考えています。コア データに複数のユーザーのエンティティ/テーブルがあります。しかし、私が関心があるのは、そのうちの 1 つである現在のユーザーのプロファイル データを取得することだけです。テーブルをロードして選択を選択し、パスとインデックス行などを使用するプロセスを経ずに、それを直接ロードしたいと思います。結果を取得したら、それらを行として表示するのではなく、異なるフィールドを分散させたくありません詳細ページで行うように、さまざまな要素でページを囲みます。

誰でもこれを行うための最良の方法を提案できますか?

問題のユーザーをユーザーIDまたはユーザー名でソートする述語を使用する必要があると思います。通常は NSFetchedResultsController を使用してフェッチを実行しますが、executefetchrequest を使用してより簡単なフェッチを行う方法があるかもしれません。次のコードは、SO で見つけたものを基にしています。それは正しいアプローチですか?

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

core-data - Core-Data: 保存後に MOC からオブジェクト数をフェッチする

現在、CoreData の実装に問題があります。特定のプロパティを持つオブジェクトの数をクエリしようとしています。したがって、次のコードを実行します

ここまでは順調ですね。データが保存されていない新しいMOCで作業すれば、すべてが機能します。次の操作を行うと、問題が発生します。

  • MOC全体を保存します
  • フェッチ基準に一致するオブジェクトの 1 つを MOC から削除します (保存せずに!)
  • 基準に一致するオブジェクトの数を再クエリします

オブジェクトの 1 つを削除しても、オブジェクトの数は変わりません。次のクエリも試しました...

...同じ結果です。

次に、オブジェクトを直接クエリしてみました...

... 多田:ここでは動作します。配列には、削除されたオブジェクトは含まれていません。fetchRequest.includesPendingChanges = NO を設定すると、まだ保存していないため、もちろんすべてのオブジェクトを取得します。最初の 2 つのクエリでは、最初に表示されるオブジェクトが多すぎるため、このプロパティは効果がありません。

私の質問は、私が間違っていることと、オブジェクトを永続ストアに保存した後、適切な量のオブジェクトを取得できない理由です。保存後に MOC をリセットする必要がありますか?

-------------------------------------------------- ------------------------------

アップデート

同様の問題をさらに検索したところ、興味深い投稿がいくつか見つかりました。MOC からオブジェクトをフェッチするということは、永続ストアにもクエリを実行することを意味します。変更をすぐに保存しなかったため、削除されたオブジェクトと新しく挿入されたオブジェクトをそれぞれフェッチするかどうかを指定します。しかし奇妙なことに、これは辞書の結果タイプまたはカウントフェッチを含むクエリにのみ適用されます。オブジェクト自体をクエリすると、新しく挿入されたオブジェクトと削除されたオブジェクトを含め、正しい数のオブジェクトが取得されます。

今、私は自分の問題に対処する方法を考えています。NSFetchedResultsController (NSFRC) とスムーズに連携するテーブル ビューがあります。コントローラーがすべての更新を処理して通知するため、変更を保存する必要はありません。しかし、データを挿入または削除し、NSFRC が通知するとすぐに、さらに計算を行って他のビューを更新したいと考えています。これらの計算には、特定の属性を持つオブジェクトの平均と数などが含まれます。現在、挿入または削除デリゲート メソッドが呼び出されるとすぐに、これらのビューを更新します。しかし、これらのクエリは正しい値を返しません。クエリを実行する前に以下を呼び出しても、これらのクエリには影響しません。

どうやら私のアプローチには何かが欠けているようです。必要な値を正しく取得するにはどうすればよいですか? 私のNSFRCは明らかに削除され挿入された値を追跡しているので、平均を取得するためだけに2番目のNSFRCを作成するのに役立つかどうか興味がありますか? それも可能ですか?

ありがとう!

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

swift - Core Data からの子の合計の取得

3 つのエンティティがあるとします。 Person: 氏名住所 (to-many-salary) および (to-many-loans)

給与: 所得税 Rel: (対1人)

請求 額 Rel: (1人あたり)

次のような結果になるフェッチを実行するにはどうすればよいですか。

John Doe, SUM>収入, SUM>額 Eva Doe, SUM>収入, SUM>額

スウィフトの使用

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

ios - 2 回目の reloadData の後、ManagedObject 属性は nil です

私には価値があります:

viewWillAppearCore Data からデータをロードします。

最初のリロード データはすべて正常に機能し、必要な情報をすべて取得できますが、2 回目のリロード後は次のようになります。

オブジェクトの属性JourneyInformationは nil です。journeysArray前と同じように 4 つのオブジェクトが含まれていることを示します。どのようにオブジェクトを取得し、損失なしでそれらを操作しますか?

0 投票する
3 に答える
2213 参照

swift - 条件を満たすCoreDataを取得する方法Swift 2

以下のようなフィールドを持つDBがあります

緯度経度フラグ 54.1425 98.2564 0 52.1036 94.1458 3 51.1569 92.1458 3 50.1326 91.1458 3 56.1236 93.1458 0

フラグが 3 のレコードを取得する必要があります。

私が持っているのは、テーブル TABLE_LOCATION からすべてのレコードを取得する上記のコードだけです。コードまたは実際の例は大歓迎です

ありがとう!