0
Objective-Cクラスのすべてのivarsの値を取得し、配列にロードしたいと考えています。文字列名に基づいて変数の値を取得する方法は?
私は、次のコードを持っている:
Class class = [self class];
NSString *myClassName = NSStringFromClass([self class]);
unsigned int count;
Ivar *ivars = class_copyIvarList(class, &count);
for (int i=0; i<count; i++) {
Ivar ivar = ivars[i];
const char* name = ivar_getName(ivar);
const char* typeEncoding = ivar_getTypeEncoding(ivar);
NSLog(@"Class Name: %@ ivar: %s Type Encoding: %s",myClassName, name, typeEncoding);
}
だから私は、文字列(名前)と名前を持ち、今、私はそのIVARの値を必要とします。
ような何か:
value = [self valueFromStringName(name)];
を私はmyDate
と呼ばれる日を持っている場合、私はメソッドに文字列myDate
を渡すことができますし、それが保持している日付の値を返すようにするため。
メソッドの文字列名からメソッドを実行するルーチンがありますが、文字列名から値を取得できる場所はわかりません。 IVARの値を取得するために
id object_getIvar(id object, Ivar ivar)
:?あなたはまだ、なぜ継続しないと使用ランタイム関数を使用している考える