私は非常に奇妙なエラーが長い時間働いているアプリケーションで起こっています。奇妙なCoreDataエラー... insertNewObjectForEntityForNameから返された値:壊れているようです
CoreDataモデルで自分のエンティティの1つを作成できなくなりました。
私は私のモデルである特定のエンティティを作成してのNSLogを使用して、それを印刷してみてください( "%の@" @、OBJ)、私はこの奇妙なメッセージが出ます:
2011-11-08 13:03:05.936をiLearnFast [31541:15503] - [__ NSCFNumber objectID]:インスタンスに送信された認識できないセレクタ0xa069e20
このオブジェクトの属性/リレーションシップをループして印刷すると、特定の1対1の関係が[ obj valueForKey:]返す値は、上記のエラーメッセージで説明したものと同じポインター/オブジェクトです。
私はどこかでメモリを破壊している可能性があると思っていましたが、データ構造が初期化されるとすぐに実行可能ファイルの冒頭にエンティティを作成するコードを挿入しました。私はこの時点で何のメモリエラーもしていないことを非常に確信しています(そしてメモリエラーはよりランダムになります...何千ものオブジェクトを作成することができます。同じエンティティは常に同じ関係で同じ問題を持ちます。他のエンティティにも問題があります)。
この1つの関係に問題を絞り込んだ後、他のものとの関係の名前を変更してエラーを解消できることがわかりました。私のアプリケーションが作成されて以来、この関係は「ファイル」と呼ばれています。
それは私の自動軽量移行を台無しが、私は、プロパティの名前を変更して再び自分のコードを動作させることができますが、今はもっと複雑な移行を行う方法を考え出すに対処する必要があります。
誰かが何がうまくいかないかについてのアイディアがあれば、本当に感謝しています。
これは私を困惑させ、AppleのSDKのバグのようなものです。
私は現在XCode 4.2を使用しており、両方のSDKをiOS5.0とiOS4.3の両方で試していますが、どちらも同じ動作でした。
ロン
返信いただきありがとうございます!だから私のオブジェクトは何とか壊れたobjectIDを持っていますか?私は、アプリケーションが管理対象オブジェクトモデル/管理オブジェクトコンテキストの作成以外は何もしていないときに、このコードをVERYの最初に置いています。また...どのようにして漏れが問題を引き起こす可能性がありますか?私はどこかでランダムにメモリを踏んでいるかもしれないと思ったが、このエラーはオブジェクトを作成する呼び出しの直後に起こる。 – Ron
私はまた私のオブジェクトをカスタムオブジェクトではなく、代わりにNSManagedObjectに直接変更しようとしました。同じ問題。 NSManagedObjectを作成すると、特定の関係が偽のObjectIDで破損します。 – Ron
おそらく、あなたのオブジェクトをすべて保存しようとしている状況を保存すると、このエラーが発生しましたか? – beryllium