2010-07-02 42 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