2010-07-02 36 views
2

我有一堆名为index1,index2,...,indexn的变量。我想计算i = array[index1] + array[index2] + ... + array[indexn].我听说我可以在循环中做到这一点,从循环索引中获取当前变量名称。我怎样才能做到这一点?obj-c中字符串的变量名称

+3

有一堆编号的变量是线索#1,说明程序的结构有问题。为什么他们不在数组或其他适当的复合对象中? – 2010-07-02 10:33:30

回答

4

而不必像这样的个体变量:

int index1, index2, index3, ...indexN: 

你应该考虑使用索引数组:

int index[N]; 

,然后你可以在一个循环中,例如总结

sum = 0; 
for (i = 0; i < N; ++i) 
{ 
    sum += array[index[i]]; 
} 
0

对不起,在objective-c中这是不可能的。它适用于例如在PHP中。

如果您的数据模型允许这样做,您可以通过名称获取对象,但一般而言,变量名称不能通过名称合成。

+1

那么'valueForKey'呢? – Robert 2010-07-02 10:30:23

+0

只有在使用键值编码(KVC)来保存变量时,此工作才有效。我认为它们只是代码中的简单整数,而不是符合KVC的属性。可以考虑将它们重构为一个数组。 – Eiko 2010-07-02 10:40:22