IBOutlet变量名称出现问题

时间:2012-11-12 20:13:19

标签: objective-c ios variables uilabel iboutlet

我无法在代码中转换字符串以换取IBOutlet变量名称。

我正在尝试通过以后以编程方式创建相同的变量名来引用在头文件中声明的IBOutlet UILabel实例。

但是,当我施放一个字符串试试&替换IBOutlet UILabel变量名称,程序崩溃。

希望以下示例解释正在发生的事情。为什么需要。对不起,如果描述有点不稳定 - 我是初学者。

当我创建UILabel *tempLabelName以尝试&替换为头文件中声明的IBOutlet UILabel *property(在下面的propertyUseForNaming示例中引用),程序崩溃!

for (int i = 0; int < 5; i++)
{    

    NSString *tempText = [[NSString alloc] initWithFormat:@"%d", [aReferenceObject[i] integerToDisplayAsText]];

    UILabel *tempLabelName = [NSString stringWithFormat:@"%@", [aReferenceObject[i] propertyUseForNaming]];

    [tempLabelName setText: tempText];

}

有人可以帮助我并解释我如何做到/提供进一步的建议?

非常感谢。

1 个答案:

答案 0 :(得分:2)

UILabel不是字符串,反之亦然。

UILabel *tempLabelName = [NSString stringWithFormat:@"%@", [aReferenceObject[i] propertyUseForNaming]];

表示您正在创建一个字符串,然后尝试将其视为UILabel。这是不可能的。您需要让XIB(或您的程序)创建UILabel,然后您可以使用text属性设置文本:

在您的标头文件中:

@property (nonatomic, retain) UILabel *label;

在您的代码中:

label.text = [NSString string...];
// OR
[label setText:str];

还有很多其他内容(例如,您还需要.m文件中的代码来实现属性,还需要将xib实例连接到插座),但这是您误解的本质。