0

文字列に名前があり、そのポインターが必要なプロパティから値を設定しようとしています。(私は信じている)

私は持っている:

unsigned int propCount = 0;
objc_property_t *properties = class_copyPropertyList([self class], &propCount);

for(int idx = 0; idx < propCount; idx++) {
    objc_property_t prop = *(properties + idx);
    NSString *key = @(property_getName(prop));
    NSString *key2 = @(property_getAttributes(prop));

    NSLog(@"%@::%@", key,key2);

    if ([key2 rangeOfString:@"UITextField"].location != NSNotFound) {
        NSLog(@"is a uitextfield");

        [self.form setValue:self.comments forKey:key];
    }
}

キー = 「コメント」

self.comments を使用する代わりに、self.key のようなものを使用したいのですが、それができないことはわかっています。どうすればこれを達成できますか?

4

1 に答える 1

0

これに対する解決策は、Key-Value Codingを使用することです。self.commentsへの参照をwas isに置き換えることができ[self valueForKey:key]ます。それらが同じメモリアドレスを指していることを確認するために簡単なチェックを行いたい場合は、これを使用します。key@"comments"

NSLog(@"%p %p", [self valueForKey:key], self.comments);
于 2013-11-01T15:49:45.667 に答える