【发布时间】:2012-05-02 22:24:06
【问题描述】:
我一直在环顾四周,并没有完全找到任何关于这样做的东西,并且不确定它是否可能,但这就是我想要实现的目标。请注意,我给出了一个非常简单的例子来说明我正在尝试做的事情。此外,发布的代码的相似之处都是假设的,并不意味着更正代码语法。它只是为了通过引用类似类型的功能来帮助进一步说明所需的最终结果。所以请在提供替代方法之前了解这个概念......
话虽如此,正如标题所说,我想看看我是否可以访问一个对象,让我们通过它的字符串名称说一个 uilabel,或者使用 if 语句不说一个变量。例如,假设我们有 3 个 uilabes
UILabel *label1;
UILabel *label2;
UILabel *label3;
从那里我们进行所有适当的合成以及不做的事情。现在在某个时候我想引用一个基于 let say 和 int 的标签。
int intNumber = 2;
这里是理论部分。我现在想设置名称中具有匹配 int 值的标签的文本。
label(%i, intNumber).text = [NSString stringWithFormat:@"This is Label %i", intValue];
结果将是......
label2.text = @"This is Label 2";
如果 int 值为 1,则 label1 将被更改。或者如果是 3,那么 label3 会被改变,等等......
或者如果可以使用标签的字符串名称完成相同的过程。
int intValue = 1;
NSString *labelName;
然后在某个时候
labelName = [NSString stringWithFormat:@"label%i",intValue];
现在以某种方式通过引用“labelName”来设置 label1 的文本来调用它。如果有人可以提出建议或评论是否可以完成这样的事情,我们将不胜感激。我知道您可以通过字符串名称引用类和选择器,但我不确定对象?我不知道“valueForKey:”是否是我应该这样做的方式?
很抱歉这篇冗长的帖子,但我只是想确保我说明了我想做的事情。
【问题讨论】:
-
对不起,我真的想通了。因为我是堆栈溢出的菜鸟,所以我还不能回答我自己的问题。一旦我能够,我将用示例代码发布答案。再次感谢...
-
是的,类似但显然不是正确答案。
标签: objective-c