0

Core Data を使用するアプリがあります。私のアプリはバックグラウンド スレッドで何らかの処理を行い、出力をコア データに保存します。同時に、メイン/UI スレッドがコア データの読み取り操作を実行します。

現在、カスタムのゲッターとセッターを作成するために、管理対象オブジェクトの 1 つの属性を合成しようとしています (長い文字列をファイルに自動的に保存し、代わりにパスを保存するだけです)。しかし、後でメインスレッドでこれらのオブジェクトを読み取ると、それらは nil になりました。カスタムのゲッターとセッターを削除して、単に に@dynamic attr置き換えてみまし@synthesize attr = _attrたが、それでも機能しなくなりました。(私は自分のプロジェクトをきれいにして、シミュレーターと私が試していたデバイスの両方から削除しました)。

元の構文を復元した瞬間、すべてが再び機能し始めました。何がそのような動作を引き起こしているのでしょうか?

4

1 に答える 1

0

カスタム アクセサー メソッドを正しく実装する方法については、Core Data Programming Guide のManaged Object Accessor Methodsセクションを参照してください。

ところで、既存の実装は高度に最適化されているため、通常は管理対象オブジェクトのアクセサー メソッドをオーバーライドしないことをお勧めします。

于 2014-01-22T10:12:40.720 に答える