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]];
        }
4

3 に答える 3

1

あなたの問題はここにあります:

for (int i = 0; i < [array count]; i++) { // < instead of <=
    factors.text = [NSString stringWithFormat:@"%d", i, [[array objectAtIndex:i] intValue]];
}
于 2012-07-25T11:54:00.407 に答える
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です。

于 2012-07-25T11:50:06.477 に答える
1

for ループで、次のように = を削除します。

for (int i = 0; i < [array count]; i++) 
于 2012-07-25T11:50:35.563 に答える