1

Xcode 4.5 以降では、プロパティが自動合成され、プロパティ名の前にアンダースコアが追加されたインスタンス変数が作成されます。しかし、これは NSManagedObject でどのように機能するのでしょうか? 彼らは、カスタム セッターで KVC プリミティブ メソッドを使用することを望んでいます。では、NSManagedObject 内のアンダースコア ivar を介してインスタンス変数を設定するとどうなるでしょうか? KVCメソッドをバイパスするので、それは物事を台無しにしませんか? それとも、舞台裏でこれを安全に行っていますか?

4

2 に答える 2

0

通常のプロパティとは異なり、NSManagedObjectプロパティはコンパイル時に合成されないことに注意してください (したがって、@dynamic実装に を使用します)。コンパイル時合成は使用されないため、設定できる合成インスタンス変数はありません。

代わりに、 のインスタンスは、状態を保存するために にNSManagedObject似たプライベートな内部インスタンスを持ちます。NSMutableDictionary動的に生成されるプロパティ アクセサーは、プライベート ストレージにアクセスする KVC のようなメソッドへの呼び出しのラッパーです。

于 2013-09-29T18:07:57.110 に答える