Objective-C变量运行时动态命名/引用
我有一个变量名引用问题,是关于客观C大师的 假设我在一个表单上有6个UILabel,它们的设置带有将它们命名为myLabel1-myLabel6的属性 我想通过一个for循环,并根据循环的不同用一些东西填充它们,但我不确定如何指定for循环变量并使其成为标签名称的一部分 以下是我想做的:Objective-C变量运行时动态命名/引用,objective-c,variables,Objective C,Variables,我有一个变量名引用问题,是关于客观C大师的 假设我在一个表单上有6个UILabel,它们的设置带有将它们命名为myLabel1-myLabel6的属性 我想通过一个for循环,并根据循环的不同用一些东西填充它们,但我不确定如何指定for循环变量并使其成为标签名称的一部分 以下是我想做的: for (int LP = 0; i <5) { labelLP.text = [NSString stringWithFormat:@"My label number:%d", LP}; }
for (int LP = 0; i <5)
{
labelLP.text = [NSString stringWithFormat:@"My label number:%d", LP};
}
for(int-LP=0;i我认为您不能动态创建变量名,至少不能简单地创建变量名
您可以在回路中始终使用开关盒:
for (int i=0; i<5; i++) {
switch(i) {
case 1:
myLabel1.text = [NSString stringWithFormat:@"My label number: %d", i];
break;
case 2:
myLabel2.text = [NSString stringWithFormat:@"My label number: %d", i];
break;
...
...
}
}
for(int i=0;i一个人是否喜欢这种方法是一个风格的问题,但这里有一种可行的方法:
for (int LP = 1; i <=6)
{
NSString *labelName = [NSString stringWithFormat: @"label%d", i];
UILabel *labelLP = (UILabel*)[self valueForKey: labelName];
labelLP.text = [NSString stringWithFormat:@"My label number:%d", LP};
}
for(int LP=1;i您始终可以利用objective-c的动态运行时:
id var = object_getIvar(self,class_getInstanceVariable([self class], [[NSString stringWithFormat:@"label%d",LP] UTF8String]));