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

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

iphone - 重大なアプリケーションエラー

フェッチされた結果コントローラーを使用して、CoreDataモデルから取得した「患者」エンティティのリストを表示するTableViewコントローラークラスがあります。この表のセクションは、「場所」と呼ばれる患者属性から取得されます。フェッチ要求のソート記述子は次のとおりです。

FRCの初期化コードは次のとおりです。

新しい「患者」エンティティを追加したい場合-追加ボタンをクリックして、「新しい患者の追加」ビューコントローラをナビゲーションスタックにプッシュします。

私が追加した最初の患者は正常に機能します。

2人目の患者を追加すると、アプリがクラッシュして次のエラーが発生することがあります。

2010-03-22 14:42:05.270患者[1126:207]重大なアプリケーションエラー。Core Data変更処理中に例外がキャッチされました:*-[NSCFArray insertObject:atIndex:]:index(1)beyond(1)with userInfo(null)2010-03-22 14:42:05.272 Patients [1126:207] *キャッチされなかった例外'NSRangeException'が原因でアプリを終了しています、理由:'***-[NSCFArray insertObject:atIndex:]:インデックス(1)が境界を超えています(1)'

これは、患者に場所が追加されている場合にのみ発生するようです(何も追加されていない場合、場所はデフォルトで「不明」になります)。場所の並べ替えにも関係があるようです。たとえば、最初の患者の場所=病棟14、2番目の患者の場所=病棟9の場合、必ずクラッシュします。

これは、フェッチされた結果コントローラーにセクション名を並べ替えるように要求する方法と関係があるのでしょうか?

このバグは私を狂わせており、私はそれを理解することができません。どんな助けでも大歓迎です!

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

iphone - NSFetchedResultsControllerフェッチ要求-述語とUITableViewを更新します

私のiPhoneCoreDataアプリでは、マスター/詳細ビューのセットアップで構成しています。

マスタービューは、Listエンティティのオブジェクトを一覧表示するUITableViewです。Listエンティティはエンティティ(「タスク」と呼ばれる)と多対数の関係を持ち、Taskエンティティは「リスト」Taskと呼ばれる逆対1の関係を持ちます。List

マスタービューでオブジェクトが選択されている場合List、詳細ビュー(別のUITableView)にそのTaskオブジェクトに対応するオブジェクトを一覧表示する必要がありListます。私がこれまでに行ったことはこれです:

List詳細ビューコントローラで、オブジェクトのプロパティを宣言しました。

@property (nonatomic, retain) List *list;

次に、マスタービューコントローラーで、このテーブルビューデリゲートメソッドを使用してlist、リストが選択されたときに詳細ビューコントローラーのプロパティを設定します。

list次に、次のように詳細ビューコントローラーのプロパティのセッターをオーバーライドしました。

ここで行っているのは、フェッチされた結果に述語を設定してオブジェクトを除外し、選択したListオブジェクトに属するオブジェクトのみを取得するようにすることです。詳細ビューコントローラのfetchedResultsControllerゲッタは次のようになります。

Core Dataプロジェクトテンプレートのデフォルトからほとんど変更されていません。私が行った変更は、常にfalseを返す述語を追加することです。これは、リストが選択されていない場合、アイテムを詳細に表示したくないためです。ビュー(リストが選択されている場合、リストプロパティのセッターで述語が変更されます)。

ただし、リストアイテムを選択しても、実際には何も起こりません。テーブルビューには何も変更されず、空のままになります。私の論理はいくつかの場所で欠陥があると確信しています、アドバイスはありがたいです

ありがとう

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

objective-c - FetchResultController と ManagedObjectContext を使用したオブジェクトの取得の違い

FetchResultController または ManagedObjectContext を使用した Core Data からの要素の取得の違いは何ですか??

1) フェッチ結果コントローラー

2) 管理オブジェクトコンテキスト

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

iphone - NSFetchRequest / 述語の質問

患者と仕事の 2 つのエンティティがあります。患者は「ジョブ」と呼ばれるジョブと対多の関係を持ち、ジョブは「患者」と呼ばれる患者と対一の関係を持ちます。Job には「dueDate」(Date) と「completed」(BOOL) という属性があり、Patient には属性「firstName」と「lastName」(どちらも文字列) があります。

NSFetchedResultsController のフェッチ要求/述語を作成しようとしています。完了していないすべてのジョブを取得し (つまり、完了 == NO)、それらを患者名でセクション化します。これが私のコードです:

ここに私の titleForHeaderInSection メソッドがあります:

これはうまくいかないようです。私はこれについて間違った方法で進んでいますか?

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

iphone - NSFetchedResultsController-デリゲートメソッドがiPhoneOS3.0でクラッシュしますが、3.1ではクラッシュしません

やあみんな、3.1 SDKでNSFe​​tchedResultsControllerが正常に動作するようになりましたが、特に3.0で試してみると、デリゲートメソッドで奇妙なエラーが発生し始めます。これはNSFetchedResultsControllerDelegateメソッドに関連していると判断しました。これが私が設定したものです。

inEditingModeのものは、テーブルに別の静的セクションを追加するために実装した方法と関係があります。

管理対象オブジェクトコンテキストにエンティティを追加すると、次のエラーが発生します。

objc_exception_throwにブレークポイントを設定しましたが、controllerDidChangeContent内でクラッシュが発生しているようです。

すべてのself.tableViewメソッドをコメントアウトし、単一の[self.tableView reloadData]をcontrollerDidChangeContent内に配置すると、すべてが期待どおりに機能します。

なぜこれが起こっているのかについて誰かが何か考えを持っていますか?

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

iphone - NSFetchedResultsController での NSPredicate の動作がおかしい

これは非常に単純なはずですが、奇妙な動作をしています。

私には3つのエンティティがあり、そのような関係があります

エンティティ A <-->> エンティティ B <<--> エンティティ C

NSFetchedResults コントローラーがあり、次の述語を使用してエンティティ A の結果をフィルター処理しようとしています。

アプリを実行しようとすると、出力に結果が表示されません。述語を次のように少し変更できます。

そして、フィルターで除外したい結果だけを表示します。

なぜこうなった?

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

cocoa - 検索または作成ループ中の NSFetchedResultsController へのデータの追加

NSFetchedResultsController によって管理されるテーブル ビューがあります。ただし、検索または作成操作に問題があります。ユーザーがテーブル ビューの一番下に到達すると、別のコンテンツのバッチをサーバーに照会しています。ローカル キャッシュに存在しない場合は、作成して保存します。ただし、存在する場合は、そのデータを取得した結果コントローラーに追加して表示したいと考えています。その部分がよくわかりません。

これまでのところ、私がやっていることは次のとおりです。

  1. データベースからの最新の 100 件の結果に対するクエリを初期化したときの NSFetchedRequestController ( を使用setFetchLimit:)。1000 行あっても、最初は 100 行だけアクセスできるようにしたいです。
  2. サーバーから返された値の配列を NSOperation に渡して処理します。
  3. 操作では、操作する新しい管理対象オブジェクト コンテキストを作成します。
  4. この操作では、配列を繰り返し処理し、フェッチ リクエストを実行して、オブジェクトが存在するかどうかを (サーバー ID に基づいて) 確認します。
  5. オブジェクトが存在しない場合は、オブジェクトを作成し、操作の管理対象オブジェクト コンテキストに挿入します。
  6. 反復が完了したら、マネージド オブジェクト コンテキストを保存します。これにより、メイン スレッドでマージ通知がトリガーされます。

マージ中に、手順 4 で新しく作成されたオブジェクトがテーブルに挿入されますが、既に存在し、フェッチされたばかりのオブジェクトは挿入されません。これが私の NSOperation からの関連コードです

メインスレッドに渡したいのは、新しく作成されたオブジェクトと、ループが繰り返されるたびにフェッチ要求でフェッチされた可能性のある既存のオブジェクトです。

それは私が見逃している単純なものであり、正しい方向に微調整を使用できるように感じます.

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

iphone - iPhone開発-CoreDataランタイムエラー

奇妙なCoreDataの問題に直面しています。ログは次のとおりです。

NSFetchedResultsControllerを使用してテーブルにデータを入力するUITableViewControllersの階層があり、特定の行を選択すると、詳細ビ​​ューが表示されます。

MyMainEntityUITableViewとMyEntityUITableViewはどちらも、NSFetchedResultsControllerを使用してレコードを表示します。tableViewをスクロールしているときにクラッシュすることがあり、詳細ビューを開こうとするとクラッシュすることがあります。アプリケーションがクラッシュする前に、MyEntityの詳細ビューに複数回移動できます。

このエラーはどういう意味ですか?どうすれば修正できますか!?

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

ios - つまり、NSFetchedResultsControllerはどのように使用されますか?

ドキュメントを1時間読んでいますが、まだポイントがわかりませんNSFetchedResultsController。の代替品UITableViewControllerですか?またはUITableViewController使用していNSFetchedResultsControllerますか?NSFetchedResultsControllerデータソースですか?それは何ですか?