4

自分のタイプのエンティティを挿入しようとしているにもかかわらず、なぜinsertNewObjectForEntityForName戻ってくるのかを理解しようとして、ここ数時間髪を引っ張っています。NSManagedObject

私が何千回もチェックしたこと:

  • ダイアグラム デザイナーでクラス名が正しい値に設定されている
  • エンティティは別のエンティティと多対多の関係を持ち、他のエンティティが期待どおりに機能し、適切に型付けされた出力が得られます。それらは同一であることを誓います

これが発生する可能性のある理由は何ですか? ここからどこを見ればいいのかわからず、Googleはあまり役に立ちませんでした:(

編集(解決済み):

これはバージョン管理と関係がありました...データモデルを削除して再作成したところ、以前に使用されていたいくつかのバージョンが存在する前に、すべてが機能し始めました...ため息時々質問をすると、解決

今は解決したとはいえ、なぜそれが起こったのか、私はまだ混乱しています

4

5 に答える 5

7

私は別の解決策で同様の状況に陥りました。一連の不幸な出来事 (名前空間の衝突によりエンティティの 1 つが強制的に変更された) により、適切なカスタム サブクラスではなく、データ モデルのクラスがデフォルトの NSManagedObject に設定されたカスタム エンティティになりました。

したがって、データ モデル全体を削除して再構築するという面倒な作業を行う前に (先ほど行ったように、git ブランチを作成してくれてありがとう)、クラスがまだ適切に設定されていることを確認してください。

于 2011-11-18T21:45:42.523 に答える
1

私もこれを経験しましたが、それは破損したモデルではなく、モデルファイルのエンティティ定義の実際のタイプミスでした。

基本的にエンティティと属性はすべて正しいのですが、私のエンティティの「ClassName」にタイプミスがありました。これにより、Core Dataはエンティティを実際に読み書きするのに十分な情報を持っていますが、クラスをインスタンス化できませんでした(タイプミスした名前で実際に存在しなかったため)

于 2011-04-15T02:37:17.280 に答える
0

NSManagedObject サブクラスのソース ファイルの一部を削除し、Xcode のモデル エディターからそれらを再生成した後、今日同じ状況になりました。

project.pbxproj ファイルを調べたところ、一貫性のない id-source ファイルのペアがいくつかあることがわかりました (おそらく Xcode のバグでしょうか?)。

プロジェクトからすべてのモデルを削除して再度追加することで修正できました (また、project.pbxproj から手動でファイル リンクの一部を削除しました)。

ヒントをありがとう。

于 2012-12-06T12:01:54.370 に答える
0

これはバージョン管理と関係がありました...データモデルを削除して再作成したところ、以前に使用されていたいくつかのバージョンが存在する前に、すべてが機能し始めました...ため息時々質問をすると、解決

于 2011-04-18T19:22:02.803 に答える
0

今日も同じ問題があります。2時間髪を引っ張った後、エンティティクラスのソースファイルをターゲットに追加していないことがわかりました!

于 2013-12-09T15:26:17.103 に答える