由于Google对此保持沉默,我不确定我是否正确形成了标题。
我想使用路径访问属性(或对象或实例),路径由已知路径+变量路径组成。让我们说有5个属性:pr1,pr2 ... pr5。为了排练他们我使用:
for (int i = 1; i <=5; i++) {...}
接下来我想使用i
获取该属性。这样的事情:self.pr+i;
。在Objective C中执行此操作的正确方法是什么?
答案 0 :(得分:2)
for (NSInteger i = 1; i <=5; i++)
{
// access read
id property = [self valueForKey:[NSString stringWithFormat:@"pr%ld",(long)i]];
// write
id someValue;
[self setValue:someValue forKey:[NSString stringWithFormat:@"pr%ld",(long)i]];
// remember pr1 must be a self property.
}
答案 1 :(得分:1)
通常,虽然您没有描述确切的情况,但您可以使用KVC:
id myVar = [self valueForKey:myVarName];
所以一旦你知道你只需要创建字符串:
NSString *myVarName = [NSString stringWithFormat:@"pr%d", i];