以下を使用して、すべての ivar のリストを取得しています。
Ivar *vars = class_copyIvarList([property class], &varCount);
私の質問は、Ivar から ID を作成するにはどうすればよいですか? つまり、NSString や NSDictionary などを復元します。
以下を使用して、すべての ivar のリストを取得しています。
Ivar *vars = class_copyIvarList([property class], &varCount);
私の質問は、Ivar から ID を作成するにはどうすればよいですか? つまり、NSString や NSDictionary などを復元します。
関数を使用するだけ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);
このアプローチにより、変換コードを簡素化できます。
id obj = [p valueForKey:[NSString stringWithUTF8String:ivar_getName(anIvar)]];
...