0

以下を使用して、すべての ivar のリストを取得しています。

 Ivar *vars = class_copyIvarList([property class], &varCount);

私の質問は、Ivar から ID を作成するにはどうすればよいですか? つまり、NSString や NSDictionary などを復元します。

4

2 に答える 2

2

関数を使用するだけobject_getIvar()です。このようなもの:

uint varCount;
Ivar *vars = class_copyIvarList([property class], &varCount);

// Get the first one (out of an instance of this class)
// Of course you could just iterate and get each one
id var = object_getIvar(property, vars[0]);

// Free the array when you're done
free(vars);
于 2012-07-30T12:17:53.193 に答える
2

このアプローチにより、変換コードを簡素化できます。

id obj = [p valueForKey:[NSString stringWithUTF8String:ivar_getName(anIvar)]];
...
于 2012-07-30T12:30:11.347 に答える