1

オブジェクトのプロパティが変更または更新されるたびに、変数 (ノンス変数) を変更したいと考えています。このノンスは時間ベースです。したがって、プロパティが更新されるたびに、この nonce が現在の時刻に更新されます。

オブジェクトのすべての重要な変更を自動的にリッスンする方法はありますか? または、各プロパティのすべてのキー値オブザーバーを個別に手動で維持する必要がありますか?

どうもありがとう

4

2 に答える 2

6

Obj-C ランタイム関数を調べましたか? ドキュメントのこちらを参照してください。たとえば、これにより、クラス内のすべてのプロパティのリストが得られますLender。(ところで: 私は自分の Mac を使用していないので、これはドキュメントからそのまま引用したものです):

@interface Lender : NSObject {
    float alone;
}
@property float alone;
@end

次を使用してプロパティのリストを取得できます。

id LenderClass = objc_getClass("Lender");
unsigned int outCount;
objc_property_t *properties = class_copyPropertyList(LenderClass, &outCount);

次に、プロパティの名前を取得できます。

const char *property_getName(objc_property_t property)

それらの名前をパイプで戻すaddObserver:forKeyPath:options:contextと、ゴールデンになるはずです。

于 2013-05-14T15:50:17.633 に答える