2012-07-25 68 views
0

我想顯示在文本字段中鍵入的數字的每個因子以實現此目的我嘗試使用數組。但我總是得到錯誤'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'。任何建議來消除這個錯誤?顯示數字的因子

 NSMutableArray *array; 
     array = [NSMutableArray arrayWithCapacity:100]; 

     for (factorsNumber=1; factorsNumber<=number; factorsNumber++) { 
      if (number%factorsNumber == 0) { 
       [array addObject:[NSString stringWithFormat:@"%d", factorsNumber]]; 
      } 

     } 

     for (int i = 0; i <= [array count]; i++) { 
      factors.text = [NSString stringWithFormat:@"%d", i, [[array objectAtIndex:i] intValue]]; 
     } 
+2

'I <[數組數]' – beryllium 2012-07-25 11:50:59

+0

代碼工作。但它只顯示我的數組中的第一個對象。 – 2012-07-25 12:11:57

回答

1
for (int i = 0; i <= [array count]; i++) { 

應該是

for (int i = 0; i <= [array count] - 1; i++) { 

for (int i = 0; i < [array count]; i++) { 

一個n - 元素陣列的有效索引是0至n-1

+0

現在感謝它的工作。但不是給我所有的數字,它只給了我第一個。 – 2012-07-25 12:07:41

+0

可能因爲因素編號<=素數。不應該是'因素編號<=編號? – 2012-07-25 12:09:27

+0

在我的代碼中,它是! – 2012-07-25 12:10:24

1

在你的for循環,去除=,以便它讀取:

for (int i = 0; i < [array count]; i++) 
1

你的問題就在這裏:

for (int i = 0; i < [array count]; i++) { // < instead of <= 
    factors.text = [NSString stringWithFormat:@"%d", i, [[array objectAtIndex:i] intValue]]; 
}