0

この問題は、前の質問から続いています。

次のコード行を実行すると:

NSEntityDescription *outputCellEntityDescription = [NSEntityDescription entityForName:@"OutputCell"
                                                               inManagedObjectContext:[[self document] managedObjectContext]];

次のエラーが表示されます。

HIToolbox: ignoring exception '+entityForName: could not locate an NSManagedObjectModel for entity name 'OutputCell'' that raised inside Carbon event dispatch

私の懸念は、エラーのエンティティ名の末尾に表示されたように見える余分な上昇です。なぜこれが発生するのか、またはどのようにデバッグすることができるのか、誰でも説明できますか? コードは最初の実行時には通常どおり実行されますが、コア データを数回フェッチすると、コードが壊れているように見えます。メモリリークなどに関連する問題でしょうか?

助けてくれてありがとう。

4

1 に答える 1

1

余分な上昇はありません。引用符がネストされているだけです:

[']+entityForName: エンティティ名 'OutputCell' ['] の NSManagedObjectModel が見つかりませんでした

このビットは、例外によって返される文字列です。これには、OutputCell一重引用符が付けられています。紛らわしく見えますが。これまでに見たことがない場合は、簡単に見逃してしまいます。

ただし、エラーの原因は不明です。

編集:

デバッグのステップとして、モデルの呼び出しの結果をログに記録して、実際にエンティティ-[NSManagedObjectModel entities]が含まれているかどうかを確認することをお勧めします。OutputCell

問題の簡単な説明は、保存後に何らかの形でモデルを切り替えることです。誤って別のモデルを割り当てたか、所有しているモデルを無効にしました。それをテストするには、NSManagedObjectModel インスタンスのアドレスをログに記録し、それが変化するかどうかを確認する必要があります。

于 2010-03-25T11:45:55.837 に答える