0

コア データ プロジェクトで問題が発生しました。NSManagedObjects を含む NSArrayController と + / - ボタンがあります。ファイルが保存された後に行内のオブジェクトを削除すると完全に機能しますが、新しいオブジェクトを追加してすぐに再度削除すると (デフォルト値を変更せずに)、エラーが発生します:

Serious application error.  Exception was caught during Core Data change processing: Unknown number type or nil passed to arithmetic function expression. with userInfo (null)  
Unknown number type or nil passed to arithmetic function expression.  

新しいオブジェクトの追加を取り消しても同じです。

何をすべきかを教えてくれる人はいますか?一時的なIDしか持っていないことが関係していると思いますが、解決方法がわかりません。

4

2 に答える 2

1

私は問題と解決策を見つけました。記録のために私はそれを説明します。

問題は、そのinit関数内のオブジェクトがそれ自体にオブザーバーを追加したことでした。これがおそらくエラーの引き金となったものです。オブジェクトを削除する前にオブザーバーとして自分自身を削除した場合、エラーは生成されません。

于 2010-07-28T19:53:02.853 に答える
0

通常、テーブルにはNSManagedObjectsは含まれていません。むしろ、NSArrayControllerがバインディングを介して管理対象オブジェクトの属性を値として提供しているか、NSTableViewDataSourceに準拠しているオブジェクトが提供しています。これらのシナリオのいずれかで提供される選択されたオブジェクトの削除は、無数の方法で実行できます。問題は、ケースがどのように設定されているかをまったく説明していないことです。

あなたの削除(あなたのボタンが配線されているターゲット/アクション)がnilまたは予期しない何かに渡されている可能性はありますか?管理対象オブジェクトのコンテキストにfloat値またはその他のランダムなものを削除するように要求した場合、同様にひどいエラーを想像できます...

于 2010-07-28T15:54:51.783 に答える