【问题标题】:Variable IBOutlet name for a UILabel?UILabel 的变量 IBOutlet 名称?
【发布时间】:2011-11-06 04:04:14
【问题描述】:

呃,这里有点麻烦……

我在 Interface Builder 中有 4 个显示标签,在视图控制器中设置为 IBOutlets。

我已经为它们设置了这些名称 标签1,标签2,标签3,标签4

我想为随机选择的标签更改标签文本

我正在尝试这个......

在我声明为属性的头文件中:

@property (nonatomic retain) UILabel *myLabel;

然后在我的实现文件中我合成并尝试

myLabel = [UILabel valueForKey: [NSString stringWithFormat:@"label%d", randomInt]];

myLabel.text = @"bleh!";

myLabel = [UILabel ... 行导致崩溃。有什么帮助吗?谢谢!

【问题讨论】:

  • 告诉我们,你认为这条线应该做什么?

标签: iphone objective-c ios xcode4


【解决方案1】:

您的想法是正确的,但您应该将valueForKey: 传递给self,而不是UILabel,假设它的self 拥有这些属性。

myLabel = [self valueForKey:[NSString stringWithFormat:@"label%d", randomInt]];

附带说明一下,使用IBOutletCollection 可能会更好。在 Xcode 4 中,选择所有标签并将它们拖到头文件中。这将生成一个包含所有出口的IBOutletCollection NSArray。然后,您可以从该数组中选择一个随机索引。 IBOutletCollection 以不确定的顺序存储其网点通常是不幸的,但对于您的情况应该没问题。

【讨论】:

  • 谢谢,效果很好。我也会看看 IBOutletCollection
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
相关资源
最近更新 更多