PHP的“variablesvariables”的目标C等效
在PHP和JavaScript中,您可以通过使用另一个variables作为其名称的一部分来dynamic使用variables。 我不想使用数组作为解决scheme的一部分。 目标C中可以实现吗? 我想要做这样的事情:
for (int i=1; i<6; i++) { if([appRecord.answer(i) length] != 0){ self.textView.answer(i)ViewSingle.text = appRecord.answer(i); } }
简短的回答:不。
长答案:那种。
- 你可以使用一个数组,将你的variables存储在那里,然后索引它。
- 就像#1一样,如果你的对象实际上是UI元素,而你不需要一大堆
IBOutlets
,那就用一个IBOutletCollection
来代替。 - 您可以使用字典,将variables存储为值,然后按键查找它们。
- 您可以将所有variables声明为
@property
,然后使用[self valueForKey:]
按名称查找它们。 - 您可以将string的名称作为string构build,然后使用类似
object_getInstanceVariable()
的方式直接检索它的值(这与#3类似,除非您不必将其声明为@property
)。 这太复杂了,通常比你实际需要的要大得多。 - 如果您正在处理视图,则可
[superview viewWithTag:aTag]
每个视图分配一个唯一标记,然后通过[superview viewWithTag:aTag]
检索它。 我不build议使用这种方法。
编辑:请注意,这只适用于实例variables。 这不适用于全局/静态variables。
但是,您可以给视图添加标签并使用-viewWithTag: