我正在尝试从一个属性中设置一个值,该属性我在字符串中有名称但需要它的指针。 (我相信)
我有:
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之类的东西,但我知道我不能这样做。我怎么能做到这一点?
答案 0 :(得分:0)
解决方法是使用键值编码。如果self.comments
为[self valueForKey:key]
key
,您可以将@"comments"
的引用替换为NSLog(@"%p %p", [self valueForKey:key], self.comments);
。如果要进行简单检查以确保它们指向相同的内存地址,请使用:
{{1}}