2013-02-13 3 views
0

В следующем коде я хочу отправить matrix1Col и matrix2Col для умножения метода.Ошибка с индексом 1 за пределами границ

Но это ошибка с индексом 1 за пределами границ.

Изнутри UIButton кода

double kk[2][2] = {{1,2},{5,6}}; 
double t [2][1] = {1,2};` 

if (!matrix1Col) { 
    matrix1Col = [NSMutableArray array]; 
} 

for (unsigned int i=0; i<2; i++) { 
    matrix1Row = [NSMutableArray new]; 
    for (unsigned int j=0 ; j<2; j++) { 
     [matrix1Row addObject:@(kk[i][j])]; 
    } 
    [matrix1Col addObject:matrix1Row]; 
} 

if (!matrix2Col) { 
    matrix2Col = [NSMutableArray array]; 
} 

for (unsigned int i=0; i<2; i++) { 
    matrix2Row = [NSMutableArray new]; 
    for (unsigned int j=0; j<1; j++) { 
     [matrix2Row addObject:@(t[i][j])]; 
    } 
    [matrix2Col addObject:matrix2Row]; 
} 
NSMutableArray *resultMultiply = [self multiply:matrix1Col :matrix2Col]; 

Другой метод в ViewController.m:

Этот код ошибки:

2013-02-14 06:26:06.595 matrixMutableArray[21578:c07] *** Terminating app due to      uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]' 
*** First throw call stack: 

Я не могу найти его там, где это ошибка ,

Спасибо за ваш комментарий.

+0

Где именно происходит ошибка? – Sebastian

ответ

0

Ошибка возникает на этой строке:

double value2 = [[[matrix2 objectAtIndex:k] objectAtIndex:j] doubleValue]; 

Когда ошибка возникает к = 0 и J = 1. ОбъектAtIndex: 0 для матрицы2 имеет только один объект, следовательно, ошибку.

+0

Спасибо. Я уже изменил его на 0. Но я хочу знать об этом, почему j = 1, в то время как я устанавливаю его меньше, чем matrix2RowCount, а matrix2RowCount равно 1; – selfsheariffter

+0

@selfsheariffter, нет, мой отладчик говорит, что matrix2RowCount равен 2. – rdelmar

+0

спасибо вам большое. – selfsheariffter