実行時にオブジェクトに特定のメソッドがあるかどうかを確認することに慣れています。ただし、Core Dataを使用している場合、私の@dynamic
プロパティの予想される動作が見られません。たとえば、クラスにsortOrder
プロパティがある場合、Objective-Cランタイムを使用して、このプロパティが実行時に存在することを確認できます。しかし、私が関連するClass
オブジェクトにinstancesRespondToSelector:
かどうかを問い合わせると、私はNO
に戻る。ランタイムを使用して利用可能なメソッドを列挙した場合、動的getter/setterはリストに表示されません。これは一貫していますが、私が期待したものではありません。実行時にNSManagedObjectのサブクラスが特定のプロパティを持っているかどうかを確認する方法
質問:NSManagedObject
サブクラスのインスタンスが@dynamic
プロパティに対応するgetter/setterセレクタに応答するかどうかをランタイム検査を使用せずに簡単に判別できますか?
私はちょうどのための*正確に*、行を行う方法で最後の仕上げを置きますあなたが何を示唆しているのか。ひどく高価ですが、それは仕事を完了します。私のアプローチを肯定してくれてありがとう。 – warrenm
+1これは、適切なコンテキストで便利なコードです。 – jakev
@warrenm私はほとんどそれを呼び出す必要はないので、私は費用に気づいていません。結果をディスクにキャッシュすることもできます。データモデルを更新する場合は、そのキャッシュをクリアするだけです。喜んで助けてください。 –