-3

我无法转换字符串以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];

}

有人可以帮助我并解释我该怎么做/提供进一步的建议吗?

非常感激。

4

1 回答 1

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 实例连接到插座),但这是您误解的本质。

于 2012-11-12T20:29:25.327 回答