将名称作为字符串时获取属性指针

时间:2013-11-01 15:33:55

标签: ios

我正在尝试从一个属性中设置一个值,该属性我在字符串中有名称但需要它的指针。 (我相信)

我有:

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];
    }
}

key =“comments”

我没有使用self.com,而是想使用self.key之类的东西,但我知道我不能这样做。我怎么能做到这一点?

1 个答案:

答案 0 :(得分:0)

解决方法是使用键值编码。如果self.comments[self valueForKey:key] key,您可以将@"comments"的引用替换为NSLog(@"%p %p", [self valueForKey:key], self.comments); 。如果要进行简单检查以确保它们指向相同的内存地址,请使用:

{{1}}