Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective-C变量运行时动态命名/引用_Objective C_Variables - Fatal编程技术网

Objective-C变量运行时动态命名/引用

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

我有一个变量名引用问题,是关于客观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我认为您不能动态创建变量名,至少不能简单地创建变量名

您可以在回路中始终使用开关盒:

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